Summary:ASTERISK-17078: "transmit_refer" builds REFER with no host in case of anonymous call transfer
Reporter:kpect (kpect)Labels:
Date Opened:2010-12-08 09:33:49.000-0600Date Closed:2011-06-07 14:05:08
Versions:Frequency of
Description:In case of Anonymous call Invite comes with the following "From" field:

> From: Anonymous <sip:>

Transfer is called without specifying host.

> exten => 1.,1,Transfer(100)

Refer is build in function "transmit_refer" (line 12683 of chan_sip module)
/* Get just the username part */
if ((c = strchr(dest, '@'))) {
c = NULL;
} else if ((c = strchr(of, '@'))) {
*c++ = '\0';
if (c) {
snprintf(referto, sizeof(referto), "<sip%s:%s@%s>", use_tls ? "s" : "", dest, c);
} else {
snprintf(referto, sizeof(referto), "<sip%s:%s>", use_tls ? "s" : "", dest);

In mentioned case "dest" is "100" and "of" is "".

So Refer-To filed contains "Refer-To: <sip:100>" without specifying host address.


In case when there is no '@' if "of" variable it means that "From" field doesn't contain username, but only host address.

It seems that full content of "of" variable should be used as host address for Refer in that case.
Comments:By: Leif Madsen (lmadsen) 2010-12-16 11:19:27.000-0600

This looks like a configuration issue. The destination should be an IP address, not an extension number. It may work is [100] is defined in sip.conf, but you would probably need to specify the SIP/100.

Please use the asterisk-users mailing list or #asterisk IRC channel for additional support.