diff options
Diffstat (limited to 'channels/chan_sip.c')
-rw-r--r-- | channels/chan_sip.c | 29 |
1 files changed, 15 insertions, 14 deletions
diff --git a/channels/chan_sip.c b/channels/chan_sip.c index 6544972a3..fbe7ed1d6 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -1125,7 +1125,7 @@ struct sip_registry { AST_STRING_FIELD(hostname); /*!< Domain or host we register to */ AST_STRING_FIELD(secret); /*!< Password in clear text */ AST_STRING_FIELD(md5secret); /*!< Password in md5 */ - AST_STRING_FIELD(contact); /*!< Contact extension */ + AST_STRING_FIELD(callback); /*!< Contact extension */ AST_STRING_FIELD(random); ); int portno; /*!< Optional port override */ @@ -4413,7 +4413,7 @@ static int sip_register(char *value, int lineno) char username[256] = ""; char *hostname=NULL, *secret=NULL, *authuser=NULL; char *porta=NULL; - char *contact=NULL; + char *callback=NULL; if (!value) return -1; @@ -4435,11 +4435,11 @@ static int sip_register(char *value, int lineno) *authuser++ = '\0'; } /* split host[:port][/contact] */ - contact = strchr(hostname, '/'); - if (contact) - *contact++ = '\0'; - if (ast_strlen_zero(contact)) - contact = "s"; + callback = strchr(hostname, '/'); + if (callback) + *callback++ = '\0'; + if (ast_strlen_zero(callback)) + callback = "s"; porta = strchr(hostname, ':'); if (porta) { *porta++ = '\0'; @@ -4462,7 +4462,7 @@ static int sip_register(char *value, int lineno) regobjs++; ASTOBJ_INIT(reg); - ast_string_field_set(reg, contact, contact); + ast_string_field_set(reg, callback, callback); if (username) ast_string_field_set(reg, username, username); if (hostname) @@ -7156,7 +7156,8 @@ static int transmit_register(struct sip_registry *r, int sipmethod, const char * if (!ast_strlen_zero(r->username)) ast_string_field_set(p, username, r->username); /* Save extension in packet */ - ast_string_field_set(p, exten, r->contact); + if (!ast_strlen_zero(r->callback)) + ast_string_field_set(p, exten, r->callback); /* check which address we should use in our contact header @@ -15643,7 +15644,7 @@ static struct sip_peer *build_peer(const char *name, struct ast_variable *v, str time_t regseconds = 0; struct ast_flags peerflags[2] = {{(0)}}; struct ast_flags mask[2] = {{(0)}}; - char contact[256] = ""; + char callback[256] = ""; if (!realtime) @@ -15779,8 +15780,8 @@ static struct sip_peer *build_peer(const char *name, struct ast_variable *v, str ast_copy_string(peer->language, v->value, sizeof(peer->language)); } else if (!strcasecmp(v->name, "regexten")) { ast_copy_string(peer->regexten, v->value, sizeof(peer->regexten)); - } else if (!strcasecmp(v->name, "contact")) { - ast_copy_string(contact, v->value, sizeof(contact)); + } else if (!strcasecmp(v->name, "callbackextension")) { + ast_copy_string(callback, v->value, sizeof(callback)); } else if (!strcasecmp(v->name, "call-limit")) { peer->call_limit = atoi(v->value); if (peer->call_limit < 0) @@ -15873,10 +15874,10 @@ static struct sip_peer *build_peer(const char *name, struct ast_variable *v, str reg_source_db(peer); ASTOBJ_UNMARK(peer); ast_free_ha(oldha); - if (!ast_strlen_zero(contact)) { /* build string from peer info */ + if (!ast_strlen_zero(callback)) { /* build string from peer info */ char *reg_string; - asprintf(®_string, "%s:%s@%s/%s", peer->username, peer->secret, peer->tohost, contact); + asprintf(®_string, "%s:%s@%s/%s", peer->username, peer->secret, peer->tohost, callback); if (reg_string) { sip_register(reg_string, 0); /* XXX TODO: count in registry_count */ free(reg_string); |