diff options
author | Olle Johansson <oej@edvina.net> | 2007-03-14 16:59:35 +0000 |
---|---|---|
committer | Olle Johansson <oej@edvina.net> | 2007-03-14 16:59:35 +0000 |
commit | f9c3f60ab97878df1eccde5c6e5c12f4148f9033 (patch) | |
tree | fd469a381a810d4e031910ece50ff91c43602826 /channels | |
parent | d74caa4fe8c9719f6e148d280054b6efc536073d (diff) |
Merged revisions 58848 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4
................
r58848 | oej | 2007-03-13 12:49:35 +0100 (Tue, 13 Mar 2007) | 10 lines
Merged revisions 58847 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.2
........
r58847 | oej | 2007-03-13 12:45:52 +0100 (Tue, 13 Mar 2007) | 2 lines
Issue #9229 - No port in request URI on register to non default SIP ports (neelakantan)
........
................
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@58900 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'channels')
-rw-r--r-- | channels/chan_sip.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/channels/chan_sip.c b/channels/chan_sip.c index acbcfbbc0..6a2d449e8 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -7838,7 +7838,17 @@ static int transmit_register(struct sip_registry *r, int sipmethod, const char * /* Fromdomain is what we are registering to, regardless of actual host name from SRV */ - snprintf(addr, sizeof(addr), "sip:%s", S_OR(p->fromdomain, r->hostname)); + if (!ast_strlen_zero(p->fromdomain)) { + if (r->portno && r->portno != STANDARD_SIP_PORT) + snprintf(addr, sizeof(addr), "sip:%s:%d", p->fromdomain, r->portno); + else + snprintf(addr, sizeof(addr), "sip:%s", p->fromdomain); + } else { + if (r->portno && r->portno != STANDARD_SIP_PORT) + snprintf(addr, sizeof(addr), "sip:%s:%d", r->hostname, r->portno); + else + snprintf(addr, sizeof(addr), "sip:%s", r->hostname); + } ast_string_field_set(p, uri, addr); p->branch ^= ast_random(); |