diff options
author | Alexei Gradinari <alex2grad@gmail.com> | 2016-05-19 15:56:26 -0400 |
---|---|---|
committer | Alexei Gradinari <alex2grad@gmail.com> | 2016-05-25 10:56:14 -0400 |
commit | 230686f4ec82a774e2a41aaa5e86909fd589f9b4 (patch) | |
tree | df6bef07fb69be2c985c5393b5b90863ae63b439 /include/asterisk | |
parent | f09f923514c44737693e424b3dab9afccfe0031f (diff) |
res_pjsip: add "via_addr", "via_port", "call_id" to contact
As res_pjsip_nat rewrites contact's address, only the last Via header
can contain the source address of registered endpoint.
Also Call-Id header may contain the source address of registered
endpoint.
Added "via_addr", "via_port", "call_id" to contact.
Added new fields ViaAddress, CallID to AMI event ContactStatus.
ASTERISK-26011
Change-Id: I36bcc0bf422b3e0623680152d80486aeafe4c576
Diffstat (limited to 'include/asterisk')
-rw-r--r-- | include/asterisk/res_pjsip.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/include/asterisk/res_pjsip.h b/include/asterisk/res_pjsip.h index d20d27e70..b64ad624b 100644 --- a/include/asterisk/res_pjsip.h +++ b/include/asterisk/res_pjsip.h @@ -250,6 +250,12 @@ struct ast_sip_contact { char *aor; /*! Asterisk Server name */ AST_STRING_FIELD_EXTENDED(reg_server); + /*! IP-address of the Via header in REGISTER request */ + AST_STRING_FIELD_EXTENDED(via_addr); + /* Port of the Via header in REGISTER request */ + int via_port; + /*! Content of the Call-ID header in REGISTER request */ + AST_STRING_FIELD_EXTENDED(call_id); }; #define CONTACT_STATUS "contact_status" @@ -1101,6 +1107,7 @@ struct ast_sip_contact *ast_sip_location_retrieve_contact(const char *contact_na */ int ast_sip_location_add_contact(struct ast_sip_aor *aor, const char *uri, struct timeval expiration_time, const char *path_info, const char *user_agent, + const char *via_addr, int via_port, const char *call_id, struct ast_sip_endpoint *endpoint); /*! @@ -1122,6 +1129,7 @@ int ast_sip_location_add_contact(struct ast_sip_aor *aor, const char *uri, */ int ast_sip_location_add_contact_nolock(struct ast_sip_aor *aor, const char *uri, struct timeval expiration_time, const char *path_info, const char *user_agent, + const char *via_addr, int via_port, const char *call_id, struct ast_sip_endpoint *endpoint); /*! |