- [sales]
- exten => s,1,NoOp(sales-menu)
- exten => s,n,Set(GLOBAL(time_expired_sales)=no)
- exten => s,n,Set(GLOBAL(call_already_answered)=no)
- exten => s,n,Set(caller_id=${CALLERID(num)})
- ;exten => s,n,Dial(local/s@mysales1,40)
- exten => s,n,Dial(local/s@mysales1&local/s@mysales2,,40)
- exten => s,n,Set(GLOBAL(time_expired_sales)=yes)
- exten => s,n,NoOp(to-sales-voicemail====)
- exten => s,n(voice-mail),VoiceMail(sales@default,u)
- exten => s,n,Hangup
- [mysales1]
- exten => s,1,NoOp(mysales1)
- exten => s,n,Dial(SIP/4001,35,rgM(rx_channel^${CALLERID(num)}))
- ;exten => s,n(Callend),Goto(sales,s,voice-mail)
- [mysales2]
- exten => s,1,NoOp(mysales2)
- exten => s,n,Dial(SIP/4002,35,rgM(rx_channel^${CALLERID(num)}))
- ;exten => s,n(Callend),Goto(sales,s,voice-mail)
- [macro-rx_channel]
- exten => s,1,Wait(3)
- exten => s,n,NoOp(${DIALSTART})
- exten => s,n(ini_stage),Gotoif($[${time_expired_sales}=yes]?end_call) ;== check time expired status of caller
- ;.....................................................
- exten => s,n,Read(ACCEPT,,1,,,10)
- exten => s,n,Gotoif($[${ACCEPT}=1]?Answer) ;== answer the call
- exten => s,n,Gotoif($[${ACCEPT}=3]?cid) ;== caller id announcement
- ;.....................................................
- exten => s,n,Goto(option_timeout) ;== No option entered by receiver
- ;.....................................................
- exten => s,n(cid),SayDigits(${ARG1})
- exten => s,n,Goto(ini_stage) ;== goto initail stage to accept input option
- ;.....................................................
- exten => s,n(Answer),Gotoif($[${call_already_answered}=yes]?already-answered:not-answered) ;== check the answred status before answring the call
- ;.....................................................
- exten => s,n(already-answered),PlayBack(tts) ;== ending a call because "it is already answered by some one"
- exten => s,n,Set(MACRO_RESULT=CONTINUE)
- exten => s,n,Set(MASTER_CHANNEL(ACTION)=3)
- exten => s,n,Goto(End)
- ;.....................................................
- exten => s,n(end_call),PlayBack(hello-world) ;== ending a call because "it's initial time expired"
- exten => s,n,Set(MACRO_RESULT=CONTINUE)
- exten => s,n,Set(MASTER_CHANNEL(ACTION)=3)
- exten => s,n,Goto(End)
- ;.....................................................
- exten => s,n(option_timeout),Set(MACRO_RESULT=CONTINUE) ;== ending a call because "no option entered by receiver"
- exten => s,n,Set(MASTER_CHANNEL(ACTION)=3)
- exten => s,n,Goto(End)
- ;.....................................................
- exten => s,n(not-answered),Set(GLOBAL(call_already_answered)=yes)
- exten => s,n,Set(MASTER_CHANNEL(ACTION)=1) ;== answering the call
- exten => s,n,Goto(End)
- ;.....................................................
- exten => s,n(End),MacroExit
- -- Goto (sales,s,1)
- -- Executing [s@sales:1] NoOp("SIP/hu-out-00000000", "sales-menu") in new stack
- -- Executing [s@sales:2] Set("SIP/hu-out-00000000", "GLOBAL(time_expired_sales)=no") in new stack
- == Setting global variable 'time_expired_sales' to 'no'
- -- Executing [s@sales:3] Set("SIP/hu-out-00000000", "GLOBAL(call_already_answered)=no") in new stack
- == Setting global variable 'call_already_answered' to 'no'
- -- Executing [s@sales:4] Set("SIP/hu-out-00000000", "caller_id=112021081") in new stack
- -- Executing [s@sales:5] Dial("SIP/hu-out-00000000", "local/s@mysales1&local/s@mysales2,,40") in new stack
- -- Called local/s@mysales1
- -- Called local/s@mysales2
- -- Executing [s@mysales1:1] NoOp("Local/s@mysales1-3484;2", "mysales1") in new stack
- -- Executing [s@mysales1:2] Dial("Local/s@mysales1-3484;2", "SIP/4001,35,rgM(rx_channel^112021081)") in new stack
- == Using SIP RTP TOS bits 184
- == Using SIP RTP CoS mark 5
- -- Called SIP/4001
- -- Local/s@mysales1-3484;1 is ringing
- -- Local/s@mysales1-3484;1 connected line has changed. Saving it until answer for SIP/hu-out-00000000
- -- Local/s@mysales1-3484;1 connected line has changed. Saving it until answer for SIP/hu-out-00000000
- -- Executing [s@mysales2:1] NoOp("Local/s@mysales2-a086;2", "mysales2") in new stack
- -- Executing [s@mysales2:2] Dial("Local/s@mysales2-a086;2", "SIP/4002,35,rgM(rx_channel^112021081)") in new stack
- == Using SIP RTP TOS bits 184
- == Using SIP RTP CoS mark 5
- -- Called SIP/4002
- -- Local/s@mysales2-a086;1 is ringing
- -- Local/s@mysales2-a086;1 connected line has changed. Saving it until answer for SIP/hu-out-00000000
- -- Local/s@mysales2-a086;1 connected line has changed. Saving it until answer for SIP/hu-out-00000000
- -- SIP/4002-00000002 is ringing
- -- Local/s@mysales2-a086;1 is ringing
- -- SIP/4001-00000001 is ringing
- -- Local/s@mysales1-3484;1 is ringing
- -- SIP/4001-00000001 is ringing
- -- Local/s@mysales2-a086;1 connected line has changed. Saving it until answer for SIP/hu-out-00000000
- -- SIP/4002-00000002 answered Local/s@mysales2-a086;2
- ==================================once 4002 answer the call======================================================
- -- Executing [s@macro-rx_channel:1] Wait("SIP/4002-00000002", "3") in new stack
- -- Remote UNIX connection
- -- Remote UNIX connection disconnected
- -- Executing [s@macro-rx_channel:2] NoOp("SIP/4002-00000002", "") in new stack
- -- Executing [s@macro-rx_channel:3] GotoIf("SIP/4002-00000002", "0?end_call") in new stack
- -- Executing [s@macro-rx_channel:4] Read("SIP/4002-00000002", "ACCEPT,,1,,,10") in new stack
- -- Accepting a maximum of 1 digits.
- -- User entered '3'
- -- Executing [s@macro-rx_channel:5] GotoIf("SIP/4002-00000002", "0?Answer") in new stack
- -- Executing [s@macro-rx_channel:6] GotoIf("SIP/4002-00000002", "1?cid") in new stack
- -- Goto (macro-rx_channel,s,8)
- -- Executing [s@macro-rx_channel:8] SayDigits("SIP/4002-00000002", "112021081") in new stack
- -- <SIP/4002-00000002> Playing 'digits/1.gsm' (language 'en')
- -- <SIP/4002-00000002> Playing 'digits/1.gsm' (language 'en')
- -- <SIP/4002-00000002> Playing 'digits/2.gsm' (language 'en')
- -- <SIP/4002-00000002> Playing 'digits/0.gsm' (language 'en')
- -- <SIP/4002-00000002> Playing 'digits/2.gsm' (language 'en')
- -- <SIP/4002-00000002> Playing 'digits/1.gsm' (language 'en')
- -- <SIP/4002-00000002> Playing 'digits/0.gsm' (language 'en')
- -- <SIP/4002-00000002> Playing 'digits/8.gsm' (language 'en')
- -- <SIP/4002-00000002> Playing 'digits/1.gsm' (language 'en')
- -- Executing [s@macro-rx_channel:9] Goto("SIP/4002-00000002", "ini_stage") in new stack
- -- Goto (macro-rx_channel,s,3)
- -- Executing [s@macro-rx_channel:3] GotoIf("SIP/4002-00000002", "0?end_call") in new stack
- -- Executing [s@macro-rx_channel:4] Read("SIP/4002-00000002", "ACCEPT,,1,,,10") in new stack
- -- Accepting a maximum of 1 digits.
- -- User disconnected
- =================================== 4002 disconnect by me=========================================================
- -- Local/s@mysales2-a086;1 stopped sounds
- -- Local/s@mysales2-a086;1 answered SIP/hu-out-00000000
- == Spawn extension (mysales1, s, 2) exited non-zero on 'Local/s@mysales1-3484;2'
- -- Auto fallthrough, channel 'Local/s@mysales2-a086;2' status is 'ANSWER'
- == Spawn extension (sales, s, 5) exited non-zero on 'SIP/hu-out-00000000'
- test*CLI>