[Asterisk-Users] dtmfmode=inband but SDP also indicates rfc2833
Stagg Shelton
asterisk at oneringnetworks.com
Tue Jul 11 16:32:55 MST 2006
Mick,
I did ultimately force asterisk to the point where it will not accept or
send rfc2833. I did this by modifying chan_sip.c in the function
add_noncodec_to_sdp I simply put a return statement in the logic before
it got to the point where asterisk would add all the supported codecs to
the sdp. Here is the snippet of the code that I altered.
static void add_noncodec_to_sdp(const struct sip_pvt *p, int format, int
sample_rate,
char **m_buf, size_t *m_size, char
**a_buf, size_t *a_size,
int debug)
{
int rtp_code;
if (debug)
ast_verbose("Adding non-codec 0x%x (%s) to SDP\n",
format, ast_rtp_lookup_mime_subtype(0, format));
/* Stagg Forcing Return so as to force INBAND in SDP Nothing
below should execute*/
return;
...
As I put it in my reply to the the mailing list, this is an ugly hack,
but at least for my situation it works 99% of the time. I am currently
using my server as a proxy server between my customers and my upstream
carrier, so I really don't care about rfc2833, and as such I can afford
to implement this ugly hack.
--Stagg
Mick Noordewier wrote:
>Dear Stagg,
>
>I saw your posting on Asterisk-Users, and I have a similar problem. I
>haven't seen any other solution, so I though I would ask if you had an
>update before I posted to the list myself.
>
>I tried a version of your modification, removing the "a=fmtp" line on
>the SIP invite response. However, there is still another line "m=audio
>10988 RTP/AVP 0 101" response that the carrier detects. This seems
>unresponsive to any dtmfmode statement in sip.conf. My carrier then
>sends out of band dtmf as it did before, even though I've got
>dtmfmode=inband in sip.conf. Before I start hacking further, do you
>know a way to suppress the rfc2833 indication in this response?
>
>Many thanks for any help,
>
>Mick Noordewier
>mick at micktel.com
>
>------------------------------------------------------------------------------------
>
>Re: [Asterisk-Users] dtmfmode=inband but SDP also indicates rfc2833
>
>Stagg Shelton
>Sun, 02 Jul 2006 13:38:23 -0700
>I answered my own question. My objective was reached with a simple
>return statement on line 4384 of chan_sip.c in asterisk 1.2.9.1 ftp
>download. The effect that this has is that asterisk will return a 200 OK
>that indicates in the SDP that only inband DTMF is supported. My carrier
>detects this and their NexTone Session Switch sends out dtmf inband.
>
>It sucks having to force asterisk to operate in this manner, but
>hopefully asterisk implementation of rfc2833 will get the bugs worked
>out, if they are in fact bugs, and not design desicions.
>
>Stagg Shelton wrote:
>
>
> I'm trying to figure out a way around a problem that I'm having. My
> carrier sends me a SIP INVITE that indicates that the dtmf modes
> available are inband (0), and rfc2833 (101). My asterisk server
> (1.2.9.1) sends back a 200 OK message and shows in its SDP Media
> Description that we accept inband (0) and rfc2833 (101). My carrier
> therefore sends all DTMF via rfc2833 which obviously causes problems
> since asterisk is configured for inband.
>
> I've tried going pure rfc2833 with the carrier, and am having DTMF
> related problems. From the research that I have done with my issue
> it seems to be a problem with the way asterisk sends the rfc2833
> packets out at nearly the same time. Altering the timing that
> asterisk uses to send the rfc2833 packets seems too deeply seated in
> asterisk. I therefore have settled on the idea on using inband for
> dtmf. My termination tests using inband have been successful.
>
> So here is what i think will solve my particular problem. I just
> want to respond with a 200 OK that does not contain anything about
> rfc2833 in the SDP. Is this fairly doable. I've been diging through
> chan_sip.c and think I could just make a couple of modifications to
> make asterisk do what I need it to. I'm hoping to have someone who
> is familiar with chan_sip.c enlighten me as to whether or not this
> can be done, and what functions I would need to modify in order to
> make it happen.
>
> Thank You
> Stagg Shelton
> www.oneringnetworks.com
>
>
>
>
More information about the asterisk-users
mailing list