[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