Ticket #2726 (closed Feature Requests: wontfix)

Opened 2 years ago

Last modified 2 years ago

Asterisk 1.4 requires rfc2833compensate=yes to allow SIP DTMF recognition to work properly when talking to 1.2

Reported by: robmac Assigned to: p_lindheimer
Priority: major Milestone: 2.5
Component: Core Version: 2.4-branch
Keywords: dtmp sip rfc2833 Cc:
Confirmation: Need Feedback SVN Revision (if applicable):
Backend Engine: Asterisk 1.4.x Backend Engine Version:

Description

According to http://svn.digium.com/view/asterisk/branches/1.4/configs/sip.conf.sample?view=markup

;rfc2833compensate=yes ; Compensate for pre-1.4 DTMF transmission from another Asterisk machine. ; You must have this turned on or DTMF reception will work improperly.

This should be added to sip_general_additional.conf if the server is > 1.4

Change History

03/06/08 11:36:21 changed by p_lindheimer

  • confirmation changed from Unreviewed to Need Feedback.
  • milestone changed from Cut Line to 3.0.

I would like to seem more details about this this. From a quick glance at the sample, this looks like a per-trunk configuration. (Not even clear without checking the source code if it will apply in the general settings). Not knowing what it does, I would not want it to break non-Asterisk connections. Do you or anyone else have any insight into this?

03/06/08 14:57:28 changed by robmac

Sorry, I was not clearer and yes this applies to the general settings.

The change is that the Asterisk RTP stack has been changed in regards to RFC2833 reception and transmission. Packets will now be sent with proper duration instead of all at once. If you are receiving calls from a pre-1.4 Asterisk installation you will want to turn on the rfc2833compensate option. Without this option your DTMF reception may act poorly.

Source: http://lists.digium.com/pipermail/asterisk-commits/2006-August/006569.html

Enabling this option simply allows 1.4 to accept RTP packets all at once whether that be from a 1.2 system or a non Asterisk system which is similarly non-compliant with the RFC.

03/06/08 15:31:34 changed by p_lindheimer

robmac, correct me if I'm missing something or being dense. It looks to me form examining the source code that this applies to both [general] and on a per context basis. Given that, it would seem to me that it should not necessarily default to yes since the most likely place you are going to use it is in a asterisk to asterisk trunk situation between two boxes or with a provider using Asterisk. If the preferred default of this should be yes, we can always set it to that. But not having any experience with it and not having inquired - I'm still hesitant to make it the default...

03/07/08 08:57:29 changed by p_lindheimer

  • status changed from new to closed.
  • type changed from Bugs to Feature Requests.
  • resolution set to wontfix.

I'm going to change this to a feature request and close as 'wontfix'. I don't have the inside knowledge to make the expert opinion on this but according to a respected Digium and Asterisk source "It should *only* be set on Asterisk 1.4 if you know you're talking to an Asterisk 1.2 box on the other end of a SIP trunk" so ...

07/08/08 09:55:10 changed by olivier1010

It can be interesting to put this as a general option when the machine is opened to guest traffic, from ENUM for example.

If not asterisk 1.2 users trying to DTMF inside an asterisk 1.4 machine would fails.

Olivier.

07/08/08 13:56:06 changed by p_lindheimer

olivier1010 have you specifically tested this to see if they really fail? My inclination is to just let people set it in sip_general_custom.conf but if it is a big issue then it may be worth adding this somewhere. (Although I'm trying to avoid adding sip settings in General in favor of a module that simply allows various SIP setting to be set - any takers? - same would apply to iax2 settings)?