[Freeswitch-users] SIP INFO based DTMF detection problem and remedy.
Jason Garland
jgarland at gmail.com
Sun Sep 9 14:19:11 PDT 2007
It sounds like the Sofia code needs to be a little more forgiving as
far as case here. Some vendors may use uppercase and others lower.
Sent from my iPhone
On Sep 9, 2007, at 2:58 PM, "Keith Laaks" <keithl at voxtelecom.co.za>
wrote:
> Hi All,
>
> With Sofia talking to a gw using SIP INFO for DTMF transport, I was
> not able to get any DTMF based features (e.g. IVR) to work.
>
> In the traces I saw the following when I pressed a key on the phone
> (in this example, key=4):
>
> ***
> ***
> ***
> ***
> ***
> ***
> ***
> ***
> ***
> ***
> ***
> ***
> ***
> ***
> ********************************************************************
> I send 489 bytes to udp/[44.33.22.11]:5060 at 16:43:54.656234:
>
> ---
> ---------------------------------------------------------------------
> SIP/2.0 200 OK
> Via: SIP/2.0/UDP
> 44.33.22.11:
> 5060;rport=5060;branch=z9hG4bK848e4e821f09dcf2847c25da87f5296b
> From: <sip:27118091700 at 44.33.22.11:5060>;tag=GR52RWG346-34
> To: "unknown" <sip:878050000 at 99.88.77.66>;tag=7pBSryH1mjBUg
> Call-ID: a666e4af-d996-122a-9e99-000a9d08b6ea
> CSeq: 4 INFO
> User-Agent: FreeSWITCH(mod_sofia)
> Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, PRACK, MESSAGE,
> SUBSCRIBE, NOTIFY, REFER, UPDATE, REGISTER, INFO
> Supported: 100rel, precondition
> Content-Length: 0
>
>
> ---
> ---------------------------------------------------------------------
> nta: sent 200 OK for INFO (4)
> nua(0x815c130): event i_info 200 OK
> nua: nua_event: entering
> [33m2007-09-09 18:43:54 [DEBUG] sofia.c:1643 sofia_handle_sip_i_info
> () Unknown INFO Recieved: sip:27118091700 at 44.33.22.11:5060[signal=4
>
> duration=100]
> ***
> ***
> ***
> ***
> ***
> ***
> ***
> ***
> ***
> ***
> ***
> ***
> ***
> ***
> ********************************************************************
>
> Looking through the code, I found in sofia.c:
>
> ***
> ***
> ***
> ***
> ***
> ***
> ***
> ***
> ***
> ***
> ***
> ***
> ***
> ***
> ********************************************************************
>
> void sofia_handle_sip_i_info(nua_t *nua, sofia_profile_t *profile,
> nua_handle_t *nh, switch_core_session_t *session, sip_t const *sip,
> tagi_t tags[])
>
> {
>
> //placeholder for string searching
> char *signal_ptr;
>
> //Try and find signal information in the payload
> signal_ptr = strstr(sip->sip_payload->pl_data, "Signal=");
>
> //See if we found a match
> if (signal_ptr) {
> struct private_object *tech_pvt = NULL;
> switch_channel_t *channel = NULL;
> char dtmf_digit[2] = { 0, 0 };
>
> //Get the channel
> channel = switch_core_session_get_channel(session);
> Etc.etc.
> ***
> ***
> ***
> ***
> ***
> ***
> ***
> ***
> ***
> ***
> ***
> ***
> ***
> ***
> *********************************************************************
>
> Note that the line "signal_ptr = strstr(sip->sip_payload->pl_data,
> "Signal=");" has the 'S' in 'Signal=' capitalized.
> But from the above traces it appears sofia sends the INFO string
> through to freeswitch in lower case.
>
> That’s why freeswitch was not 'getting' the DTMF correctly.
>
> After just changing this to lower case and recompiling - works
> perfectly!
>
> Not sure, but maybe the code needs to be ammended to check for both
> variants?
>
> Would be interesting to know if this issue impacted any other
> freeswitch users - could also be an issue with my voip connection
> talking to kit not compling with latest standards.
>
> Let me know if this was of any use.
>
>
> Best Regads
>
> Keith
>
> _______________________________________________
> Freeswitch-users mailing list
> Freeswitch-users at lists.freeswitch.org
> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
> http://www.freeswitch.org
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.freeswitch.org/pipermail/freeswitch-users/attachments/20070909/63b165e8/attachment-0002.html
More information about the FreeSWITCH-users
mailing list