[asterisk-dev] REFER too soon?

Jaco Kroon jaco at uls.co.za
Thu Aug 29 06:48:38 CDT 2019


Hi Dennis,

I've your going to issue a REFER directly after 200 OK, why not simply
302 redirect instead?

Kind Regards,
Jaco

On 2019/08/29 13:18, Joshua C. Colp wrote:
> On Thu, Aug 29, 2019, at 7:45 AM, Dennis Buteyn wrote:
>> Been trying to perform a blind transfer for hours with a SIP client I'm 
>> developing (using Sofia). Every time I sent a REFER request, Asterisk 
>> would respond with 202, followed by a NOTIFY containing the ominous 
>> phrase "503 Service Unavailable (can't handle one-legged xfers)".
>>
>> At first, I thought maybe my SDP isn't good enough. So I copied some 
>> Zoiper SDP. Nope, still receive 503.
>>
>> So I turned Asterisk debug and verbose up to 11 and went caving in 
>> Asterisk sources. As far as I could tell, it was 
>> ast_bridge_transfer_blind that failed.
>>
>> Then it hit me... maybe the transfer failed because the bridge hasn't 
>> been created yet? Maybe I'm sending my REFER too soon?
>>
>> So I added a sleep(1) just before sending my REFER... success?!?
>>
>> Now, obviously sleep(1) isn't a good solution and I don't recall a 
>> minimum required delay in the specs. Should I wait for the first RTP 
>> packet to arrive? Is this a bug? I'm confused.
> There is no minimum specified in the spec because it's dependent on the remote side itself (in this case Asterisk). Asterisk only allows blind transferring a channel (can't blind transfer the dialplan for example). Since things happen asynchronously if you do it too fast at answer there is certainly a window whereby it could not yet be in a situation where a transfer is possible and thus the transfer would fail. Waiting for RTP to arrive could work.
>



More information about the asterisk-dev mailing list