[asterisk-dev] Difficult transfer problem

David Cunningham dcunningham at voisonics.com
Tue Feb 8 20:57:53 CST 2022


Hello,

I'm not sure whether anyone can help with this rather obscure problem, but
I'll give it a try...

We are having a problem with transfers and our Asterisk-based product. The
product involves the use of a lot of channels and AGI, so it's quite
complicated. In this case the user is transferring the call to *7 to park
the call (channel Local/*7 at from-internal-X). The transfer is an attended
transfer using the atxfer key defined in features.conf. The call to *7 runs
an AGI, and the AGI does a Dial() sending the call to a context which does
Asterisk's Park command (channel Local/*7 at parkedcalls-X).

The problem is that for some users the Local/*7 at from-internal-X channel
hangs up when the attended transfer completes, i.e. when the party parking
the call hangs up. For some other users the Local/*7 at from-internal-X
channel stays up until the parked call ends. We've done a lot of
investigation but so far haven't found an obvious reason. The inconsistency
in behaviour is causing problems with the application logic, although the
call works fine from an Asterisk telephony point of view.

Something we have noticed is that in the case when *7 hangs up when the
transfer completes, Asterisk logs the following:

[Feb  9 01:47:26] VERBOSE[19626][C-000000d4] bridge.c: Move-swap optimizing
Local/*7 at from-internal-0000007d;1 <-- Local/*7 at parkedcalls-0000007e;1.
[Feb  9 01:47:26] DEBUG[19626][C-000000d4] bridge.c: Moving
0x14bcb802e028(Local/*7 at parkedcalls-0000007e;1) into bridge
0c5d293c-56be-4cd1-a990-c573cc8c788f swapping with
Local/*7 at from-internal-0000007d;1
[Feb  9 01:47:26] DEBUG[19626][C-000000d4] bridge_channel.c: Bridge
2ae9f69a-0582-4440-b065-481e3b463168: pulling
0x14bcb802e028(Local/*7 at parkedcalls-0000007e;1)

This kind of looks like Asterisk is replacing the call to *7 (channel
Local/*7 at from-internal-0000007d;1) with the channel to the Park command
(channel Local/*7 at parkedcalls-0000007e;1). There is no mention of
"Move-swap" or anything like it for the other calls where the
Local/*7 at from-internal-X channel stays up until the very end of the parked
call.

Can anyone shed some light on what causes this "Move-swap"? Or are there
any possible causes of the behaviour that we should look into? This is
happening on Asterisk 13.38.2 with chan_sip.

Thanking you in advance,

-- 
David Cunningham, Voisonics Limited
http://voisonics.com/
USA: +1 213 221 1092
New Zealand: +64 (0)28 2558 3782
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-dev/attachments/20220209/c6b4f97b/attachment.html>


More information about the asterisk-dev mailing list