Summary:ASTERISK-16507: [patch] Allow chan_sip's support for INFO/Record request to also use dynamic features
Reporter:Jon Bright (sircus)Labels:
Date Opened:2010-08-04 14:28:55Date Closed:2011-12-23 14:50:39.000-0600
Versions:Frequency of
Environment:Attachments:( 0) asterisk_1_6_2_sip_record_dynamic_feature.patch
( 1) asterisk_trunk_sip_record_dynamic_feature.patch
Description:chan_sip, in handle_request_info, handles INFO requests with a Record: header, as sent by certain SIP phones (in my case, snoms) when the Record button is pressed.  It does this by looking for application "automon" and then faking the DTMF tones associated with it.

Since I want to implement somewhat different behaviour when the record button is pressed, this behaviour is not useful for me.  The current code doesn't look for dynamic features, so I have no route to customize the behaviour.

The attached patches look for a dynamic feature if no built-in feature is found, or no extension is assigned to the built-in feature.
Comments:By: Jon Bright (sircus) 2010-08-04 14:39:22

The two attached patches are functionally identical.  The asterisk_trunk_... patch applies to revision 280909.  The asterisk_1_6_2_... patch applies to revision 280942 on the 1.6.2 branch.

By: Leif Madsen (lmadsen) 2010-08-05 15:46:11

Ideally it'd be good if you could get some people from asterisk-users and/or asterisk-dev to test this as well. Thanks for the patch!

By: David Vossel (dvossel) 2010-08-30 12:25:21

I have looked at this patch, and it appears to be very specific for your use case.  I think this is a good idea, but in my opinion it would be best if we could configure what app is being used for the INFO/Record in sip.conf.  This would mean the addition of a new sip.conf option to expose this functionality.

By: Jon Bright (sircus) 2010-08-30 17:20:47

Thanks for looking at the patch.  Whilst it's true that a sip.conf option to choose the application to be used would be ideal, this patch is a building block on the path in that direction.  

In order to be able to (sensibly) choose the app to run, you first need chan_sip to be able to execute dynamic features - otherwise, you only get to choose between the range of statically defined features.