attented transfer в Астериске работает хорошо.
Но есть функционал attented transfer средствами телефона, а есть средствами Астериска (feature codes). Ставитm на Hold и потом склеивать - это вообще не attented transfer.
Код: Выделить всё
[101]
deny=0.0.0.0/0.0.0.0
permit=192.168.1.0/255.255.255.0
type = friend
qualify = yes
port = 5060
call-limit = 1
defaultuser = 101
secret = pass
canreinvite = no
callerid=Employee 1 <101>
context = clients_default
host = dynamic
progressinband = never
insecure = port,invite
disallow = all
allow=ulaw
allow=alaw
Код: Выделить всё
transferdigittimeout => 3
xfersound = beep
xferfailsound = beeperr
pickupexten = *8
pickupsound = beep
pickupfailsound = beeperr
featuredigittimeout = 1000
atxfernoanswertimeout = 15
atxferdropcall = no
atxferloopdelay = 10
atxfercallbackretries = 2
[featuremap]
blindxfer => #1
disconnect => *0
automon => *1
atxfer => *2
parkcall => #8
automixmon => *3
Код: Выделить всё
[clients_default_2]
exten => _1XX,1,NoOp()
exten => _1XX,n,Dial(SIP/${EXTEN},15,Ttm)
exten => _1XX,n,Hangup()
Код: Выделить всё
exten => h,1,NoOp()
Код: Выделить всё
exten => h,1,Goto(hangup_log)
[hangup_log]
exten => log,1,JabberSend(asterisk,${JABBER_PEER_ADDR},"Исходящий вызов в ${STRFTIME(,,%Y-%m-%d)}_${STRFTIME(,,%H-%M-%S)} от ${CDR(src)} на номер ${dialed_num} длительностью ${ANSWEREDTIME} сек. был завершён со статусом HANGUPCAUSE = ${HANGUPCAUSE}. Статус вызова ${DIALSTATUS}. Оператор связи был '${CDR(accountcode)}'.")
exten => log,n,Hangup()