mirror of
https://github.com/asterisk/asterisk.git
synced 2025-10-07 05:39:39 +00:00
Add a "message_context" option for PJSIP endpoints.
........ Merged revisions 411157 from http://svn.asterisk.org/svn/asterisk/branches/12 git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@411158 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -27,6 +27,9 @@ PJSIP:
|
|||||||
PJSIP contacts, this means that the schema has been updated to add a user_agent
|
PJSIP contacts, this means that the schema has been updated to add a user_agent
|
||||||
column. An alembic revision has been added to facilitate this update.
|
column. An alembic revision has been added to facilitate this update.
|
||||||
|
|
||||||
|
- PJSIP endpoints now have a "message_context" option that can be used to determine
|
||||||
|
where to route incoming MESSAGE requests from the endpoint.
|
||||||
|
|
||||||
Realtime Configuration:
|
Realtime Configuration:
|
||||||
- PJSIP endpoint columns 'tos_audio' and 'tos_video' have been changed from yes/no
|
- PJSIP endpoint columns 'tos_audio' and 'tos_video' have been changed from yes/no
|
||||||
enumerators to string values. 'cos_audio' and 'cos_video' have been changed from
|
enumerators to string values. 'cos_audio' and 'cos_video' have been changed from
|
||||||
|
@@ -562,6 +562,8 @@ struct ast_sip_endpoint {
|
|||||||
AST_STRING_FIELD(fromuser);
|
AST_STRING_FIELD(fromuser);
|
||||||
/*! Domain to place in From header */
|
/*! Domain to place in From header */
|
||||||
AST_STRING_FIELD(fromdomain);
|
AST_STRING_FIELD(fromdomain);
|
||||||
|
/*! Context to route incoming MESSAGE requests to */
|
||||||
|
AST_STRING_FIELD(message_context);
|
||||||
);
|
);
|
||||||
/*! Configuration for extensions */
|
/*! Configuration for extensions */
|
||||||
struct ast_sip_endpoint_extensions extensions;
|
struct ast_sip_endpoint_extensions extensions;
|
||||||
|
@@ -685,6 +685,14 @@
|
|||||||
multiple 'set_var'(s).
|
multiple 'set_var'(s).
|
||||||
</para></description>
|
</para></description>
|
||||||
</configOption>
|
</configOption>
|
||||||
|
<configOption name="message_context">
|
||||||
|
<synopsis>Context to route incoming MESSAGE requests to.</synopsis>
|
||||||
|
<description><para>
|
||||||
|
If specified, incoming MESSAGE requests will be routed to the indicated
|
||||||
|
dialplan context. If no <replaceable>message_context</replaceable> is
|
||||||
|
specified, then the <replaceable>context</replaceable> setting is used.
|
||||||
|
</para></description>
|
||||||
|
</configOption>
|
||||||
</configObject>
|
</configObject>
|
||||||
<configObject name="auth">
|
<configObject name="auth">
|
||||||
<synopsis>Authentication type</synopsis>
|
<synopsis>Authentication type</synopsis>
|
||||||
|
@@ -1723,6 +1723,7 @@ int ast_res_pjsip_initialize_configuration(const struct ast_module_info *ast_mod
|
|||||||
ast_sorcery_object_field_register(sip_sorcery, "endpoint", "srtp_tag_32", "no", OPT_BOOL_T, 1, FLDSET(struct ast_sip_endpoint, media.rtp.srtp_tag_32));
|
ast_sorcery_object_field_register(sip_sorcery, "endpoint", "srtp_tag_32", "no", OPT_BOOL_T, 1, FLDSET(struct ast_sip_endpoint, media.rtp.srtp_tag_32));
|
||||||
ast_sorcery_object_field_register_custom(sip_sorcery, "endpoint", "redirect_method", "user", redirect_handler, NULL, NULL, 0, 0);
|
ast_sorcery_object_field_register_custom(sip_sorcery, "endpoint", "redirect_method", "user", redirect_handler, NULL, NULL, 0, 0);
|
||||||
ast_sorcery_object_field_register_custom(sip_sorcery, "endpoint", "set_var", "", set_var_handler, set_var_to_str, set_var_to_vl, 0, 0);
|
ast_sorcery_object_field_register_custom(sip_sorcery, "endpoint", "set_var", "", set_var_handler, set_var_to_str, set_var_to_vl, 0, 0);
|
||||||
|
ast_sorcery_object_field_register(sip_sorcery, "endpoint", "message_context", "", OPT_STRINGFIELD_T, 1, STRFLDSET(struct ast_sip_endpoint, message_context));
|
||||||
|
|
||||||
if (ast_sip_initialize_sorcery_transport()) {
|
if (ast_sip_initialize_sorcery_transport()) {
|
||||||
ast_log(LOG_ERROR, "Failed to register SIP transport support with sorcery\n");
|
ast_log(LOG_ERROR, "Failed to register SIP transport support with sorcery\n");
|
||||||
|
@@ -464,13 +464,14 @@ static enum pjsip_status_code rx_data_to_ast_msg(pjsip_rx_data *rdata, struct as
|
|||||||
const char *field;
|
const char *field;
|
||||||
pjsip_status_code code;
|
pjsip_status_code code;
|
||||||
struct ast_sip_endpoint *endpt = ast_pjsip_rdata_get_endpoint(rdata);
|
struct ast_sip_endpoint *endpt = ast_pjsip_rdata_get_endpoint(rdata);
|
||||||
|
const char *context = S_OR(endpt->message_context, endpt->context);
|
||||||
|
|
||||||
/* make sure there is an appropriate context and extension*/
|
/* make sure there is an appropriate context and extension*/
|
||||||
if ((code = get_destination(rdata, endpt->context, buf)) != PJSIP_SC_OK) {
|
if ((code = get_destination(rdata, context, buf)) != PJSIP_SC_OK) {
|
||||||
return code;
|
return code;
|
||||||
}
|
}
|
||||||
|
|
||||||
CHECK_RES(ast_msg_set_context(msg, "%s", endpt->context));
|
CHECK_RES(ast_msg_set_context(msg, "%s", context));
|
||||||
CHECK_RES(ast_msg_set_exten(msg, "%s", buf));
|
CHECK_RES(ast_msg_set_exten(msg, "%s", buf));
|
||||||
|
|
||||||
/* to header */
|
/* to header */
|
||||||
|
Reference in New Issue
Block a user