Summary:ASTERISK-04015: Call signalling failure connecting to Cisco Callmanager 4.0.1 using h.323
Reporter:pbd (pbd)Labels:
Date Opened:2005-04-29 07:15:01Date Closed:2008-01-15 15:32:54.000-0600
Versions:Frequency of
Environment:Attachments:( 0) ast-h323-fix.diff
( 1) ccmtrunk.bmp
( 2) h323postpatch.txt
( 3) level8.txt
( 4) openphone-119.txt
( 5) withopts.txt
Description:New bug report carried from http://bugs.digium.com/bug_view_page.php?bug_id=0003980 as suggested.

After upgrade to CCM 4.0.1, native Asterisk channel driver will no longer make calls in to CCM- Asterisk can terminate calls from CCM, but CCM cannot terminate calls from Asterisk.  PDUs indicate that the number passed is not registered in Callmanager- yet the same digit string passed via OpenPhone using the same Gatekeeper work fine.  Traces from Asterisk and from OpenPhone attached for resolver's pleasure. h323PostPatch includes CVS HEAD plus all fixes on prior bug, OpenPhone is the trace from OpenPhone.
Comments:By: Paul Cadach (pcadach) 2005-04-29 08:58:38

By comparing SETUP message from h323postpatch.txt and openphone-119.txt you could see significant differences:
1) From Asterisk you have external calling number while from OpenPhone the number is CCM's internal;
2) For OpenPhone call H.225 sourceAddress.dialedDigits is equal to CallingNumber but for Asterisk's call sourceAddress.dialedDigits is wrong.

So, please, check/update your h323.conf configuration. If it wouldn't help, please, note about CCM's registration of Asterisk - is it registered as gateway or as endpoint?

By: pbd (pbd) 2005-04-29 14:38:27

Made both modifications- pulled the e.164 out of my h323.conf, modded my CLID info (that's where it was getting the full PSTN number) and verified CCM sees Asterisk as a gateway (it's been like that all along).  No change (other than the relevant fields in the PDU changing), same Unallocated Number IE.

By: pbd (pbd) 2005-04-29 16:42:42

Just to confirm, I've done CVS updates today, problem is still there at CVS-HEAD-04/29/05-14:57:56

We are attempting to get traces off of Callmanager (a process akin to shoving metal stakes under your fingernails, at 5Mb/s), so I may have some additional information to share by Monday sometime.

By: pbd (pbd) 2005-04-29 17:30:57

Traces from callmanager inconclusive (not surprising).  We were able to confirm the PDUs, and noted a couple of things..
One, no matter what the setting for noFastState is, the Call Setup from Asterisk is including FastStart information.  Cisco has noted these, and flags them as errors- we can't say if this is affecting it's call control or not, the traces don't help.  Not even sure if it's a one for one match- except Cisco reports two FastStart decode errors, and there are two FastStart entries on the PDU.
Second, no matter what the setting of noH245Tunneling is, the Setup IE contains 'H245Tunneling TRUE'.  Under the OpenPhone PDU, this was H245Tunneling FALSE.  This may make a big difference in call control- again, Cisco's traces were inconclusive.
We've also replaced the gnugk temporarily with an IOS gatekeeper hosted on a router- no difference whatsoever in behavior.  I've attached an asterisk h.323 trace level 8 (level8.txt) which is current with the h323.conf below.

For reference sake, here is my current h323.conf
; Configuration file of OpenH323 channel driver

; Port to listen to
;gatekeeper=  ; gnugk gatekeeper- 118 is Cisco IOS gk
; Specify alias(es) of this host.
; It may be used multiple times.
; Set the context of H323 calls

By: Paul Cadach (pcadach) 2005-04-30 11:39:34

I'm not sure the problem is due to FastStart. With my CCM Asterisk isn't works when it registered at CCM as gateway but works fine when registered as endpoint.
FastStart's problem is because call options isn't passed correctly over OpenH323 stack to connection constructor. I'm trying to resolve this (and some more).

By: Paul Cadach (pcadach) 2005-04-30 11:55:13

Reminder sent to pbd

To fix noFastStart and other call options, change ast_h323.cpp line 301 from
if (!(connection = (MyH323Connection *)H323EndPoint::MakeCallLocked(fullAddress, token))) {
if (!(connection = (MyH323Connection *)H323EndPoint::MakeCallLocked(fullAddress, token, opts))) {

(add third argument, opts,  to MakeCallLocked()). Patch will be available later.

By: Paul Cadach (pcadach) 2005-04-30 15:44:38

The patch is attached. Also updated to play with allow/disallow/dtmfcodec/dtmfmode more carefully on user/peer sections.

edited on: 04-30-05 16:00

By: Paul Cadach (pcadach) 2005-04-30 16:32:59

Looks like problem is GK-related, not CCM or FastStart... I'm tried to call CCM-4.1.2 with FastStart enabled (but without GK) and all works fine. Asterisk's call trace is available.

By: pbd (pbd) 2005-05-01 08:58:00

Added file 'withopts.txt', the result of applying the suggested fix.

Fix appears to have corrected noted errors (faststart and h245tunneling)- but the net effect is the same, unallocated number. I'll run more CCM traces tomorrow, however, I'm not positive they'll show anything whatsoever.

Any suggested changes to the h323.conf or CCM configs accepted.  We're really closing in on this, I'm thinking there is just some small, innocuous change that will make the whole thing come online.

Also attached a print screen of the CCM trunk setup, if anyone's interested.

By: pbd (pbd) 2005-05-01 09:03:54

Have not yet added all diff- to clarify, previous bugnote only applied the 'opts' fix- will apply before next report tomorrow.

Note that we've used two different GK's (Cisco native IOS and GnuGK), no change.  OpenPhone client configured to use gatekeeper (either one) works 100%- so I'm thinking it's not the gatekeeper- but it may be how we talk to the gatekeeper.  See OpenPhone trace for a working call using the GnuGK gatekeeper.

By: Paul Cadach (pcadach) 2005-05-01 13:54:18

Could you find me on IRC to localize fault place? Do you tried to update pwlib/openh323 to 1.9.0/1.17.1 respectively?

By: pbd (pbd) 2005-05-01 15:30:54

Reminder sent to PCadach

I'm available all day Monday- I'll be on IRC most of the day if need be.

I will attempt an upgrade if needed- but the trace runs pretty clean, and OpenPhone (which works) is compiled against a much older  pwlib/openh323 stack.

By: Paul Cadach (pcadach) 2005-05-02 07:51:22

Ok, find me if possible. I'm online between 5..20 GMT (local time is GMT+6) on current holidays (this monday) and weekends, and between 14...20 GMT on workdays.

Also, your traces points you have different addresses for OpenPhone and Asterisk's calls (OpenPhone is and Asterisk is Is Asterisk registered on CCM? I don't see another significant differences on call setup sequences between OpenPhone and Asterisk.

Check your GnuGK traces for DRQs from CCM - it could give some more information.

By: Paul Cadach (pcadach) 2005-05-02 13:25:59

Resolution: CCM's configuration issue (Asterisk was configured as direct H.225 endpoint on the CCM's side while at Asterisk's side gatekeeper was used).

By: Paul Cadach (pcadach) 2005-05-02 13:34:55

Reminder sent to JerJer

The patch (ast-h323-fix.diff) is needs to be applied to the CVS. It have one-line fix for issue noted by this ticket (noFastStart, etc. isn't works correctly) and dtmfcodec/dtmfmode/etc. for user/peer too.

By: jerjer (jerjer) 2005-05-02 16:16:50

fixed in cvs -head

By: jerjer (jerjer) 2005-05-02 16:17:04

not in -stable

By: Digium Subversion (svnbot) 2008-01-15 15:32:54.000-0600

Repository: asterisk
Revision: 5551

U   trunk/channels/chan_h323.c
U   trunk/channels/h323/ast_h323.cpp
U   trunk/channels/h323/chan_h323.h

r5551 | jeremy | 2008-01-15 15:32:54 -0600 (Tue, 15 Jan 2008) | 2 lines

Fix dtmfmode, dtmfcodec capability, Faststart for users and peers. Bug ASTERISK-4015