<html><body bgcolor="#FFFFFF"><div>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.<br><br>Sent from my iPhone</div><div><br>On Sep 9, 2007, at 2:58 PM, "Keith Laaks" &lt;<a href="mailto:keithl@voxtelecom.co.za">keithl@voxtelecom.co.za</a>&gt; wrote:<br><br></div><div></div><blockquote type="cite"><div>

<!-- Converted from text/rtf format -->

<p><span lang="en-us"><font size="2" face="Arial">Hi</font><font size="2" face="Arial"> All,</font></span>
</p>

<p><span lang="en-us"><font size="2" face="Arial">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.</font></span></p>

<p><span lang="en-us"><font size="2" face="Arial">In the traces I saw the following when I pressed a key on the phone (in this example, key=4):</font></span>
</p>

<p><span lang="en-us"><font size="2" face="Arial">**************************************************************************************************************</font></span>

<br><span lang="en-us"><font size="2" face="System">I send 489 bytes to udp/[44.33.22.11]:5060 at 16:43:54.656234:</font></span>

<br><span lang="en-us"><font size="2" face="System">&nbsp;&nbsp; ------------------------------------------------------------------------</font></span>

<br><span lang="en-us"><font size="2" face="System">&nbsp;&nbsp; SIP/2.0 200 OK</font></span>

<br><span lang="en-us"><font size="2" face="System">&nbsp;&nbsp; Via: SIP/2.0/UDP 44.33.22.11:5060;rport=5060;branch=z9hG4bK848e4e821f09dcf2847c25da87f5296b</font></span>

<br><span lang="en-us"><font size="2" face="System">&nbsp;&nbsp; From: &lt;sip:<a href="mailto:27118091700@44.33.22.11">27118091700@44.33.22.11</a>:5060&gt;;tag=GR52RWG346-34</font></span>

<br><span lang="en-us"><font size="2" face="System">&nbsp;&nbsp; To: "unknown" &lt;sip:<a href="mailto:878050000@99.88.77.66">878050000@99.88.77.66</a>&gt;;tag=7pBSryH1mjBUg</font></span>

<br><span lang="en-us"><font size="2" face="System">&nbsp;&nbsp; Call-ID: a666e4af-d996-122a-9e99-000a9d08b6ea</font></span>

<br><span lang="en-us"><font size="2" face="System">&nbsp;&nbsp; CSeq: 4 INFO</font></span>

<br><span lang="en-us"><font size="2" face="System">&nbsp;&nbsp; User-Agent: FreeSWITCH(mod_sofia)</font></span>

<br><span lang="en-us"><font size="2" face="System">&nbsp;&nbsp; Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, PRACK, MESSAGE, SUBSCRIBE, NOTIFY, REFER, UPDATE, REGISTER, INFO</font></span>

<br><span lang="en-us"><font size="2" face="System">&nbsp;&nbsp; Supported: 100rel, precondition</font></span>

<br><span lang="en-us"><font size="2" face="System">&nbsp;&nbsp; Content-Length: 0</font></span>

<br><span lang="en-us"><font size="2" face="System">&nbsp;&nbsp; </font></span>

<br><span lang="en-us"><font size="2" face="System">&nbsp;&nbsp; ------------------------------------------------------------------------</font></span>

<br><span lang="en-us"><font size="2" face="System">nta: sent 200 OK for INFO (4)</font></span>

<br><span lang="en-us"><font size="2" face="System">nua(0x815c130): event i_info 200 OK</font></span>

<br><span lang="en-us"><font size="2" face="System">nua: nua_event: entering</font></span>

<br><span lang="en-us"><font size="2" face="System">[33m2007-09-09 18:43:54 [DEBUG] sofia.c:1643 sofia_handle_sip_i_info() Unknown INFO Recieved:&nbsp; sip:<a href="mailto:27118091700@44.33.22.11">27118091700@44.33.22.11</a>:5060[signal=4</font></span></p>

<p><span lang="en-us"><font size="2" face="System">duration=100]</font> </span>

<br><span lang="en-us"><font size="2" face="Arial">**************************************************************************************************************</font></span>
</p>

<p><span lang="en-us"><font size="2" face="Arial">Looking through the code, I found in sofia.c:</font></span>
</p>

<p><span lang="en-us"><font size="2" face="Arial">**************************************************************************************************************</font></span>
</p>

<p><span lang="en-us"><font size="2" face="System">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[])</font></span></p>

<p><span lang="en-us"><font size="2" face="System">{</font></span>
</p>

<p><span lang="en-us"><font size="2" face="System">//placeholder for string searching</font></span>

<br><span lang="en-us"><font size="2" face="System">char *signal_ptr;</font></span>
</p>

<p><span lang="en-us"><font size="2" face="System">//Try and find signal information in the payload</font></span>

<br><span lang="en-us"><font size="2" face="System">signal_ptr = strstr(sip-&gt;sip_payload-&gt;pl_data, "Signal=");</font></span>
</p>

<p><span lang="en-us"><font size="2" face="System">//See if we found a match</font></span>

<br><span lang="en-us"><font size="2" face="System">if (signal_ptr) {</font></span>

<br><span lang="en-us"><font size="2" face="System">struct private_object *tech_pvt = NULL;</font></span>

<br><span lang="en-us"><font size="2" face="System">switch_channel_t *channel = NULL;</font></span>

<br><span lang="en-us"><font size="2" face="System">char dtmf_digit[2] = { 0, 0 };</font></span>
</p>

<p><span lang="en-us"><font size="2" face="System">//Get the channel</font></span>

<br><span lang="en-us"><font size="2" face="System">channel = switch_core_session_get_channel(session);</font></span>

<br><span lang="en-us"><font size="2" face="Arial">Etc.etc.</font></span>

<br><span lang="en-us"><font size="2" face="Arial">***************************************************************************************************************</font></span>
</p>

<p><span lang="en-us"><font size="2" face="Arial">Note that the line "</font><font size="2" face="System">signal_ptr = strstr(sip-&gt;sip_payload-&gt;pl_data, "Signal=");</font><font size="2" face="Arial">" has the 'S' in 'Signal=' capitalized. </font></span>

<br><span lang="en-us"><font size="2" face="Arial">But from the above traces it appears sofia sends the INFO string through to freeswitch in lower case. </font></span>
</p>

<p><span lang="en-us"><font size="2" face="Arial">That’s why freeswitch was not 'getting' the DTMF correctly.</font></span>
</p>

<p><span lang="en-us"><font size="2" face="Arial">After just changing this to lower case and recompiling - works perfectly!</font></span>
</p>

<p><span lang="en-us"><font size="2" face="Arial">Not sure, but maybe the code needs to be ammended to check for both variants?</font></span>
</p>

<p><span lang="en-us"><font size="2" face="Arial">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.</font></span></p>

<p><span lang="en-us"><font size="2" face="Arial">Let me know if this was of any use. </font></span>
</p>
<br>

<p><span lang="en-us"><font size="2" face="Arial">Best Regads</font> </span>

<br><span lang="en-us"><font size="2" face="Arial">&nbsp;</font></span>

<br><span lang="en-us"><font size="2" face="Arial">Keith</font></span>
</p>


</div></blockquote><blockquote type="cite"><div><span>_______________________________________________</span><br><span>Freeswitch-users mailing list</span><br><span><a href="mailto:Freeswitch-users@lists.freeswitch.org">Freeswitch-users@lists.freeswitch.org</a></span><br><span><a href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-users">http://lists.freeswitch.org/mailman/listinfo/freeswitch-users</a></span><br><span>UNSUBSCRIBE:<a href="http://lists.freeswitch.org/mailman/options/freeswitch-users"><a href="http://lists.freeswitch.org/mailman/options/freeswitch-users">http://lists.freeswitch.org/mailman/options/freeswitch-users</a></a></span><br><span><a href="http://www.freeswitch.org">http://www.freeswitch.org</a></span><br></div></blockquote></body></html>