Global Call Basic Call Model fails to CONNECT with HMP & DMG2000

Symptom

While using GC Basic Call Model to test with the Dialogic Gateway, the default "out-of-the-box" configuration will produce the GCEV_ALERTING --> GCEV_PROCEEDING --> GCEV_DISCONNECTED events. HMP will fail to deliver the GCEV_CONNECTED event to the application while the error provided may be misleading: unable to negotiate the codec in the SDP

Reason for the issue

The issue was only seen when using PIMG V.5 and not V.4 - the two traces from the PIMG show that the 200 OK message from the PIMG V.4 has a slightly different audio definition. This is because from V.4 to V.5, PIMG changed its SIP stack to use a stricter RFC-3261 compliance. HMP disliked the 101 (digit relay capabilities) in the audio definition of the OK PIMG message because it was not presented in the original INVITE thus would not allow the call to go connected. 

PIMG Version 4 (worked) 

 

INVITE: m=audio 49152 RTP/AVP 8! 
OK: m=audio 49108 RTP/AVP 8! 

PIMG Version 5 (failed) 
INVITE: m=audio 49152 RTP/AVP 0!          //101 not in original invite 
OK: m=audio 49008 RTP/AVP 8 101 13! 

Solution

The GC Basic Call Model code was originally written to only use In-band DTMF and the PIMG defaults to use RFC-2833 (out of band signalling).

There are two solutions:

  1. Switch PIMG use In-band Digit Relay - this will allow the call to be connected without any problems. 

  2. Modify GC Basic Call Model code for setting the DTMF transfer mode to use RFC-2833. A code snippet for changing the DTMF type on HMP: 

GC_PARM_BLKP parmblkp = NULL; gc_util_insert_parm_val(&parmblkp,IPSET_DTMF,IPPARM_SUPPORT_DTMF_BITMASK,       sizeof(char), IP_DTMF_TYPE_RFC_2833);     int retval = gc_SetUserInfo(GCTGT_GCLIB_CHAN, m_hDevHandle, parmblkp, GC_ALLCALLS);   gc_util_delete_parm_blk(parmblkp);

Return to Documentation Home I Return to Sangoma Support