summaryrefslogtreecommitdiff
path: root/res/res_pjsip/location.c
diff options
context:
space:
mode:
authorJoshua Colp <jcolp@digium.com>2016-06-30 15:53:24 -0500
committerGerrit Code Review <gerrit2@gerrit.digium.api>2016-06-30 15:53:24 -0500
commit040a11cecd55e138c411608c17a2af56a2abcbf2 (patch)
tree1112d834d08ddb201f5f046e3ea29d509727cfae /res/res_pjsip/location.c
parent5ad7e1c09a7db698f0e4dd95f9153a70f8a1c667 (diff)
parent6fa3ed067957e580e208ead7a62a095ac26f5fa9 (diff)
Merge "res_pjsip: improve realtime performance #2"
Diffstat (limited to 'res/res_pjsip/location.c')
-rw-r--r--res/res_pjsip/location.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/res/res_pjsip/location.c b/res/res_pjsip/location.c
index 4f8f56fca..46278dd0c 100644
--- a/res/res_pjsip/location.c
+++ b/res/res_pjsip/location.c
@@ -121,6 +121,7 @@ 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);
@@ -352,6 +353,10 @@ int ast_sip_location_add_contact_nolock(struct ast_sip_aor *aor, const char *uri
contact->endpoint = ao2_bump(endpoint);
+ if (endpoint) {
+ ast_string_field_set(contact, endpoint_name, ast_sorcery_object_get_id(endpoint));
+ }
+
return ast_sorcery_create(ast_sip_get_sorcery(), contact);
}
@@ -1136,6 +1141,7 @@ int ast_sip_initialize_sorcery_location(void)
ast_sorcery_object_field_register(sorcery, "contact", "authenticate_qualify", "no", OPT_YESNO_T, 1, FLDSET(struct ast_sip_contact, authenticate_qualify));
ast_sorcery_object_field_register(sorcery, "contact", "outbound_proxy", "", OPT_STRINGFIELD_T, 0, STRFLDSET(struct ast_sip_contact, outbound_proxy));
ast_sorcery_object_field_register(sorcery, "contact", "user_agent", "", OPT_STRINGFIELD_T, 0, STRFLDSET(struct ast_sip_contact, user_agent));
+ ast_sorcery_object_field_register(sorcery, "contact", "endpoint", "", OPT_STRINGFIELD_T, 0, STRFLDSET(struct ast_sip_contact, endpoint_name));
ast_sorcery_object_field_register(sorcery, "contact", "reg_server", "", OPT_STRINGFIELD_T, 0, STRFLDSET(struct ast_sip_contact, reg_server));
ast_sorcery_object_field_register(sorcery, "contact", "via_addr", "", OPT_STRINGFIELD_T, 0, STRFLDSET(struct ast_sip_contact, via_addr));
ast_sorcery_object_field_register(sorcery, "contact", "via_port", "0", OPT_UINT_T, 0, FLDSET(struct ast_sip_contact, via_port));