choppiness or the clipping of loud signal peaks. To increasing the volume
of voicemail messages, use the 'volgain' option in voicemail.conf
+Channel Drivers:
+
+* chan_sip.c: a small upgrade to support the "Record" button on the SNOM360,
+ which sends a sip INFO message with a "Record: on" or "Record: off"
+ header. If asterisk is set up (via features.conf) to accept "One Touch Monitor"
+ requests (by default, via '*1'), then the user-configured dialpad sequence
+ is generated, and recording can be started and stopped via this button. The
+ file names and formats are all controlled via the normal mechanisms. If the
+ user has not configured the automon feature, the normal "415 Unsupported media type"
+ is returned, and nothing is done.
+
transmit_response(p, "403 Unauthorized", req);
}
return;
+ } else if (!ast_strlen_zero(c = get_header(req, "Record"))) {
+ /* first, get the feature string, if it exists */
+ struct ast_call_feature *feat = find_feature("automon");
+
+ if (!feat || ast_strlen_zero(feat->exten)) {
+ ast_log(LOG_WARNING,"Recording requested, but no One Touch Monitor registered. (See features.conf)\n");
+ transmit_response(p, "415 Unsupported media type", req);
+ return;
+ } else {
+ int j;
+ struct ast_frame f = { AST_FRAME_DTMF, };
+ f.len = 100;
+ for (j=0; j<strlen(feat->exten); j++) {
+ f.subclass = feat->exten[j];
+ ast_queue_frame(p->owner, &f);
+ if (sipdebug)
+ ast_verbose("* DTMF-relay event received: %c\n", f.subclass);
+ }
+ }
+
+ if (strcasecmp(c,"on")== 0) {
+
+ ast_log(LOG_NOTICE,"Got a Request to Record the channel!\n");
+ transmit_response(p, "200 OK", req);
+ return;
+
+ } else if (strcasecmp(c,"off")== 0) {
+
+ ast_log(LOG_NOTICE,"Got a Request to Stop Recording the channel\n");
+ transmit_response(p, "200 OK", req);
+ return;
+ }
}
/* Other type of INFO message, not really understood by Asterisk */
/* if (get_msg_text(buf, sizeof(buf), req)) { */
\param feature the ast_call_feature object which was registered before*/
void ast_unregister_feature(struct ast_call_feature *feature);
+/*! \brief look for a feature entry by its sname
+ \param name a string ptr, should match "automon", "blindxfer", "atxfer", etc. */
+struct ast_call_feature *find_feature(char *name);
+
#endif /* _AST_FEATURES_H */