dect
/
asterisk
Archived
13
0
Fork 0

Merged revisions 126902 via svnmerge from

https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r126902 | oej | 2008-07-01 16:59:31 +0200 (Tis, 01 Jul 2008) | 7 lines

Use domain part of SIP uri in register= configuration as fromdomain.

Reported by: one47
Patches: 
      sip-reg-fromdom2.dpatch uploaded by one47 (license 23)
(closes issue #12474)

........


git-svn-id: http://svn.digium.com/svn/asterisk/trunk@126903 f38db490-d61c-443f-a65b-d21fe96a405b
This commit is contained in:
oej 2008-07-01 15:03:59 +00:00
parent 46ebe2509b
commit 8d72879e33
1 changed files with 9 additions and 1 deletions

View File

@ -9733,6 +9733,7 @@ static int transmit_register(struct sip_registry *r, int sipmethod, const char *
char addr[80];
struct sip_pvt *p;
int res;
char *fromdomain;
/* exit if we are already in process with this registrar ?*/
if (r == NULL || ((auth == NULL) && (r->regstate == REG_STATE_REGSENT || r->regstate == REG_STATE_AUTHSENT))) {
@ -9851,12 +9852,19 @@ static int transmit_register(struct sip_registry *r, int sipmethod, const char *
ast_debug(1, "Scheduled a registration timeout for %s id #%d \n", r->hostname, r->timeout);
}
if (strchr(r->username, '@')) {
if ((fromdomain = strchr(r->username, '@'))) {
/* We have a domain in the username for registration */
snprintf(from, sizeof(from), "<sip:%s>;tag=%s", r->username, p->tag);
if (!ast_strlen_zero(p->theirtag))
snprintf(to, sizeof(to), "<sip:%s>;tag=%s", r->username, p->theirtag);
else
snprintf(to, sizeof(to), "<sip:%s>", r->username);
/* If the registration username contains '@', then the domain should be used as
the equivalent of "fromdomain" for the registration */
if (ast_strlen_zero(p->fromdomain)) {
ast_string_field_set(p, fromdomain, ++fromdomain);
}
} else {
snprintf(from, sizeof(from), "<sip:%s@%s>;tag=%s", r->username, p->tohost, p->tag);
if (!ast_strlen_zero(p->theirtag))