The SIP INFO rfc, rfc 2976, specifies the a response to an INFO request should be 200 or 202... That being said, the Snom may be expecting something more... although the Snom employee on Asterisk-users indicates that any affirmative response will do...
The ast_monitor_start function is contained in res_monitor... If res_monitor.so is not loaded, pressing the record button will cause a segfault. the pbx_findapp function should be used to determine the availability of the ast_start_monitor function.
As for the patch... A few comments... (please don't interpret my comment(s) as criticism... they are meant for discussion only!)
The automon function coded into res_features requires explicit configuration in order to function, as does monitoring in app_queue. This patch does not require configuration and bypasses the requirement for monitoring to be explicitly enabled as per res_features. Is this a valid consideration? Is the ability to record with a phone button but not with a feature code a concern? Should there be a need to explicitly enable one touch recording on a global or per-peer basis?
The implimentations in app_queue and res_features require a bridged call in order to perform monitoring... This patch will monitor the the single channel... is this desired behaviour?
If the ast_monitor_start or ast_monitor_stop function calls fail, there will be not response to the INFO request.
Also, the function prototypes for ast_monitor_start and ast_monitor_stop are contained in the header file for res_monitor, so an #include "asterisk/monitor.h" is needed.