stringfields: Collect extended stringfields into the stringfield section.
authorRichard Mudgett <rmudgett@digium.com>
Mon, 16 Apr 2018 21:38:49 +0000 (16:38 -0500)
committerRichard Mudgett <rmudgett@digium.com>
Mon, 16 Apr 2018 21:43:20 +0000 (16:43 -0500)
Use of extended stringfields is a temporary mechanism to avoid ABI
breakage in released branches without resorting to more inconvienient
methods.

* Collect existing extended stringfields into the parent stringfield
section of the struct.

Change-Id: I8d46d037801b4518837c3ea4b6df95ceadc9436b

include/asterisk/res_pjsip.h
include/asterisk/stasis_bridges.h
main/stasis_bridges.c
res/res_pjsip/location.c
res/res_pjsip/pjsip_configuration.c

index 092bb84..d2ae39b 100644 (file)
@@ -258,6 +258,14 @@ struct ast_sip_contact {
                AST_STRING_FIELD(user_agent);
                /*! The name of the aor this contact belongs to */
                AST_STRING_FIELD(aor);
+               /*! Asterisk Server name */
+               AST_STRING_FIELD(reg_server);
+               /*! IP-address of the Via header in REGISTER request */
+               AST_STRING_FIELD(via_addr);
+               /*! Content of the Call-ID header in REGISTER request */
+               AST_STRING_FIELD(call_id);
+               /*! The name of the endpoint that added the contact */
+               AST_STRING_FIELD(endpoint_name);
        );
        /*! Absolute time that this contact is no longer valid after */
        struct timeval expiration_time;
@@ -269,16 +277,8 @@ struct ast_sip_contact {
        double qualify_timeout;
        /*! Endpoint that added the contact, only available in observers */
        struct ast_sip_endpoint *endpoint;
-       /*! 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 */
+       /*! 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);
-       /*! The name of the endpoint that added the contact */
-       AST_STRING_FIELD_EXTENDED(endpoint_name);
        /*! If true delete the contact on Asterisk restart/boot */
        int prune_on_boot;
 };
@@ -751,6 +751,8 @@ struct ast_sip_endpoint {
                AST_STRING_FIELD(message_context);
                /*! Accountcode to auto-set on channels */
                AST_STRING_FIELD(accountcode);
+               /*! If set, we'll push incoming MWI NOTIFYs to stasis using this mailbox */
+               AST_STRING_FIELD(incoming_mwi_mailbox);
        );
        /*! Configuration for extensions */
        struct ast_sip_endpoint_extensions extensions;
@@ -812,8 +814,6 @@ struct ast_sip_endpoint {
        unsigned int refer_blind_progress;
        /*! Whether to notifies dialog-info 'early' on INUSE && RINGING state */
        unsigned int notify_early_inuse_ringing;
-       /*! If set, we'll push incoming MWI NOTIFYs to stasis using this mailbox */
-       AST_STRING_FIELD_EXTENDED(incoming_mwi_mailbox);
 };
 
 /*! URI parameter for symmetric transport */
index 05d356c..a455a5b 100644 (file)
@@ -46,6 +46,8 @@ struct ast_bridge_snapshot {
                AST_STRING_FIELD(creator);
                /*! Name given to the bridge by its creator */
                AST_STRING_FIELD(name);
+               /*! Unique ID of the channel providing video, if one exists */
+               AST_STRING_FIELD(video_source_id);
        );
        /*! AO2 container of bare channel uniqueid strings participating in the bridge.
         * Allocated from ast_str_container_alloc() */
@@ -60,8 +62,6 @@ struct ast_bridge_snapshot {
        unsigned int num_active;
        /*! The video mode of the bridge */
        enum ast_bridge_video_mode_type video_mode;
-       /*! Unique ID of the channel providing video, if one exists */
-       AST_STRING_FIELD_EXTENDED(video_source_id);
 };
 
 /*!
index 4b68559..59b9685 100644 (file)
@@ -246,8 +246,7 @@ struct ast_bridge_snapshot *ast_bridge_snapshot_create(struct ast_bridge *bridge
                return NULL;
        }
 
-       if (ast_string_field_init(snapshot, 128)
-               || ast_string_field_init_extended(snapshot, video_source_id)) {
+       if (ast_string_field_init(snapshot, 128)) {
                ao2_ref(snapshot, -1);
 
                return NULL;
index 22da805..6e79dc4 100644 (file)
@@ -133,11 +133,6 @@ static void *contact_alloc(const char *name)
                return NULL;
        }
 
-       ast_string_field_init_extended(contact, endpoint_name);
-       ast_string_field_init_extended(contact, reg_server);
-       ast_string_field_init_extended(contact, via_addr);
-       ast_string_field_init_extended(contact, call_id);
-
        /* Dynamic contacts are delimited with ";@" and static ones with "@@" */
        if ((aor_separator = strstr(id, ";@")) || (aor_separator = strstr(id, "@@"))) {
                *aor_separator = '\0';
index 3094f24..fb84a1f 100644 (file)
@@ -2248,8 +2248,6 @@ void *ast_sip_endpoint_alloc(const char *name)
                return NULL;
        }
 
-       ast_string_field_init_extended(endpoint, incoming_mwi_mailbox);
-
        if (!(endpoint->media.codecs = ast_format_cap_alloc(AST_FORMAT_CAP_FLAG_DEFAULT))) {
                ao2_cleanup(endpoint);
                return NULL;