Change the "external_media_address" PJSIP endpoint option to "media_address".
authorMark Michelson <mmichelson@digium.com>
Tue, 17 Sep 2013 23:10:49 +0000 (23:10 +0000)
committerMark Michelson <mmichelson@digium.com>
Tue, 17 Sep 2013 23:10:49 +0000 (23:10 +0000)
The endpoint option does not apply to communication with external entities. Rather,
the option is applied to all communications with the endpoint. The external_media_address
transport configuration option may override the endpoint option if it turns out that
we are going to be communicating with an external entity.

Two things of note:
1) I have not updated the XML documentation. This is being taken care of by Rusty as part
of his work on issue ASTERISK-22405
2) This commit is likely to cause testsuite failures since there are tests that use the
external_media_address endpoint option, and they will need to be changed over. Well, I'm
planning to get that updated ASAP after this commit.

(closes issue ASTERISK-22528)
reported by Rusty Newton
........

Merged revisions 399283 from http://svn.asterisk.org/svn/asterisk/branches/12

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@399284 65c4cc65-6c06-0410-ace0-fbb531ad65f3

include/asterisk/res_pjsip.h
res/res_pjsip/pjsip_configuration.c
res/res_pjsip_sdp_rtp.c
res/res_pjsip_t38.c

index df4ba7d..354e8a7 100644 (file)
@@ -490,8 +490,8 @@ struct ast_sip_t38_configuration {
  */
 struct ast_sip_endpoint_media_configuration {
        AST_DECLARE_STRING_FIELDS(
-               /*! Optional external media address to use in SDP */
-               AST_STRING_FIELD(external_address);
+               /*! Optional media address to use in SDP */
+               AST_STRING_FIELD(address);
                /*! SDP origin username */
                AST_STRING_FIELD(sdpowner);
                /*! SDP session name */
index 14b122c..c0a6acc 100644 (file)
@@ -656,7 +656,7 @@ int ast_res_pjsip_initialize_configuration(void)
        ast_sorcery_object_field_register_custom(sip_sorcery, "endpoint", "auth", "", inbound_auth_handler, NULL, 0, 0);
        ast_sorcery_object_field_register_custom(sip_sorcery, "endpoint", "outbound_auth", "", outbound_auth_handler, NULL, 0, 0);
        ast_sorcery_object_field_register(sip_sorcery, "endpoint", "aors", "", OPT_STRINGFIELD_T, 0, STRFLDSET(struct ast_sip_endpoint, aors));
-       ast_sorcery_object_field_register(sip_sorcery, "endpoint", "external_media_address", "", OPT_STRINGFIELD_T, 0, STRFLDSET(struct ast_sip_endpoint, media.external_address));
+       ast_sorcery_object_field_register(sip_sorcery, "endpoint", "media_address", "", OPT_STRINGFIELD_T, 0, STRFLDSET(struct ast_sip_endpoint, media.address));
        ast_sorcery_object_field_register_custom(sip_sorcery, "endpoint", "identify_by", "username", ident_handler, NULL, 0, 0);
        ast_sorcery_object_field_register(sip_sorcery, "endpoint", "direct_media", "yes", OPT_BOOL_T, 1, FLDSET(struct ast_sip_endpoint, media.direct_media.enabled));
        ast_sorcery_object_field_register_custom(sip_sorcery, "endpoint", "direct_media_method", "invite", direct_media_method_handler, NULL, 0, 0);
index be5d59f..4b08621 100644 (file)
@@ -889,7 +889,7 @@ static int create_outgoing_sdp_stream(struct ast_sip_session *session, struct as
        /* Add connection level details */
        if (direct_media_enabled) {
                ast_copy_string(hostip, ast_sockaddr_stringify_fmt(&session_media->direct_media_addr, AST_SOCKADDR_STR_ADDR), sizeof(hostip));
-       } else if (ast_strlen_zero(session->endpoint->media.external_address)) {
+       } else if (ast_strlen_zero(session->endpoint->media.address)) {
                pj_sockaddr localaddr;
 
                if (pj_gethostip(session->endpoint->media.rtp.ipv6 ? pj_AF_INET6() : pj_AF_INET(), &localaddr)) {
@@ -897,7 +897,7 @@ static int create_outgoing_sdp_stream(struct ast_sip_session *session, struct as
                }
                pj_sockaddr_print(&localaddr, hostip, sizeof(hostip), 2);
        } else {
-               ast_copy_string(hostip, session->endpoint->media.external_address, sizeof(hostip));
+               ast_copy_string(hostip, session->endpoint->media.address, sizeof(hostip));
        }
 
        media->conn->net_type = STR_IN;
index eb5d8ea..2f36dff 100644 (file)
@@ -671,7 +671,7 @@ static int create_outgoing_sdp_stream(struct ast_sip_session *session, struct as
        media->desc.media = pj_str(session_media->stream_type);
        media->desc.transport = STR_UDPTL;
 
-       if (ast_strlen_zero(session->endpoint->media.external_address)) {
+       if (ast_strlen_zero(session->endpoint->media.address)) {
                pj_sockaddr localaddr;
 
                if (pj_gethostip(session->endpoint->media.t38.ipv6 ? pj_AF_INET6() : pj_AF_INET(), &localaddr)) {
@@ -679,7 +679,7 @@ static int create_outgoing_sdp_stream(struct ast_sip_session *session, struct as
                }
                pj_sockaddr_print(&localaddr, hostip, sizeof(hostip), 2);
        } else {
-               ast_copy_string(hostip, session->endpoint->media.external_address, sizeof(hostip));
+               ast_copy_string(hostip, session->endpoint->media.address, sizeof(hostip));
        }
 
        media->conn->net_type = STR_IN;