[Asterisk-Dev] REFER / NOTIFY methods according to RFC-3515

Mikael Magnusson mikaelmagnusson at glocalnet.net
Wed Jan 11 08:32:56 MST 2006


On Wed, Jan 11, 2006 at 09:08:01AM +0100, Olle E Johansson wrote:
> Lea wrote:
> >Olle,
> >
> >Thank you very much for replying !
> >
> >The info that the transfer() application works differently from 
> >the Dial( ,t) application is not anywhere in the documentation.
> >Please consider adding it for the poor unaware users.
> >
> >Anyway, I tried to transfer an incoming SIP call (
> >after it has been answered) using the following dialplan:
> >exten => 5,1,Transfer(SIP/18005551212 at sphone.vopr.vonage.net)
> >using the same channel as for the incoming call.
> >
> >...and the Asterisk SIP debug output showed a REFER request 
> >being generated (see its listing below).  Great !
> >
> >Unfortunately this REFER request was not accepted by the Vonage 
> >server and later Asterisk retransmitted it several times after 
> >which Asterisk gave up. Thus the TRANSFER FAILED :(
> >
> Yes, the transfer() function sends a REFER, then totally ignores what is 
> happening with the transfer. It does need a total rewrite for all VoIP 
> channels and should propably be considered a bad hack.
> 
> For SIP, I've been trying to improve it but it hasn't been on top of my 
> priority list since no customer asked for it and not many people use it. 
>  Changing it to return failure and wait for failures will propably need 
> changing the core transfer() function as well, which will lead to 
> changes in other channels...
> 

I don't thinks ast_transfer or app_transfer have to be changed.
app_transfer will assign different strings to TRANSFERSTATUS depending
on the return value from the transfer function of the channel:

 -1 FAILURE
 0  UNSUPPORTED
 1  SUCCESS

And the sip_tranfer function could be rewritten to wait until a final
sip(frag) response has been received in an INFO message. But it should time
out if it didn't receive a final response in for example 60 seconds.

/Mikael




More information about the asterisk-dev mailing list