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. -- Joshua C. Colp Digium - A Sangoma Company | Senior Software Developer 445 Jan Davis Drive NW - Huntsville, AL 35806 - US Check us out at: www.digium.com & www.asterisk.org -- _____________________________________________________________________ -- Bandwidth and Colocation Provided by http://www.api-digital.com -- asterisk-dev mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-dev