[asterisk-users] Channel variable settings
Administrator TOOTAI
admin at tootai.net
Sat Apr 26 11:02:34 CDT 2008
Hi all,
we are running Asterisk SVN-branch-1.4-r114299 and face following
problem: we have a main extension (102) and other extensions (104 and 107)
When extension 104 is calling extension 107 and 107 is on the phone, the
caller is parked for 5 seconds (Park-And-Announce) and the going back to
the called extension (busyNUMBER). After 6 loops in busy state, the call
has to be forwarded to main extension which is 102. Everything is
working perfectly with one call is this loop. If a second call enter
this loop, the busyNUMBER is replaced by the last asked extension, even
for calls already in the loop!
I was expecting that one call -here SIP channel- is one channel so
variables and their values are independent of the concurrent calls in
this channel. the busyNUMBER is _not_defined as a global variable and is
unique in the dialplan.
Is this behaviour normal or related to ParkAndAnnounce? Another solution
would be to create an unique variable like (tested but it's not working):
exten => _X.,1,Set(busyNUMBER=${UNIQUEID})
exten => _X.,n,Set($[${busyNUMBER}]=${EXTEN})
Is something like this existing?
Thanks for your feedback. Relevant part of the dialplan is:
[dial-local]
exten => _X.,1,Set(GLOBAL(__DIALEDNUMBER)=${EXTEN})
exten => _X.,n,Set(busyNUMBER=${EXTEN})
exten => _X.,n,Set(VoiceMail=u)
exten => _X.,n,Set(StatusPrio=1)
exten => _X.,n,macro(rec,)
exten => _X.,n,GotoIf($["${DIALEDNUMBER}" =
"${CALLERID(number)}"]?extendedVM)
exten =>
_X.,n(BackFromBusy),Dial(SIP/${DIALEDNUMBER},${SIPTIMERING},${DIALOPT})
exten => _X.,n,Goto(onDialStatus-local,s-${DIALSTATUS},${StatusPrio})
exten => _X.,20(extendedVM),NoOp(User ${CALLERID(number)} enter extended
voicemail)
exten => _X.,n,StopMonitor
exten => _X.,n,VoiceMailMain()
exten => _X.,n,Hangup
exten => _70[1-9],1,ParkedCall(${EXTEN})
[onDialStatus-local]
exten => s-BUSY,1,Set(VoiceMail=b)
exten => s-BUSY,n,Set(CHANNEL(LANGUAGE)=fr)
exten => s-BUSY,n,Set(countParkedLoop=0)
exten => s-BUSY,n,Background(busy-pls-hold)
exten =>
s-BUSY,n(AfterAnnounce),Set(countParkedLoop=$[${countParkedLoop}+1])
exten => s-BUSY,n,GotoIf($["${countParkedLoop}" < "7"]?:ReturnToMainLoop)
exten => s-BUSY,n,ParkAndAnnounce(pbx-transfer:PARKED|5|SIP/${busyNUMBER}})
exten => s-BUSY,n,Set(StatusPrio=AfterAnnounce)
exten => s-BUSY,n,Goto(dial-local,${busyNUMBER},BackFromBusy)
exten => s-BUSY,n(ReturnToMainLoop),Goto(dial-local,102,1)
--
Daniel
More information about the asterisk-users
mailing list