Все возможности трансферов определятся буквой t в команде Dial, и другими опциями там же.
Мне сложно ответить что-то на языке исходников, но стандартный attended transfer (средствами Астериска) выполняется в одном контексте, по крайней мере при условии /* Party A */ /* Party В */ и /* Party С */ являются внутренними extensions, AFAIK.
Какие каналы остаются висеть у Вас при attended transfer?
Люди спрашивают на asteriskguru.com
How can you add specific statements into Asterisk dialplan (extension.ael, ...) for attented transfers ?
I can see Asterisk sending Transfer or Masquerade events through AMI (in 1.6.1) but I could use an external program to catch those events but I would prefer to use dialplan instead.
И решение такое:
Today, Dial application M or U options allows macro execution when caller and callee are connected.
What if this same macro could be also launched during some later events (like attended transfer) ?
With features.conf, you could then specify :
- how lo launch an attended transfer (which key to type as today),
- if a given "feature" (attended transfer, parking, ...) should be supported by Dial macro option (for compatibilty, default could be set to none)
and with extension.conf, you could specify :
- which specific treatment (sending UserEvents, launching an external program, ...) to apply
In this puzzle, if Asterisk could support a few more standard variables like ATTENDED_TRANSFERER ATTENDED_TRANSFER_TARGET, you would everything to define and run attended transfers specific logic :
exten => 123,1,Dial(SIP/123,M(mymacro^arg1^arg2)) ; mymacro is launched upon connection and specified (in features.conf) events
[macro-mymacro]
GotoIf("x${ATTENDED_TRANSFERER}", ....
но оно базируется опять же таки на функционале features.conf