1. [sales]
  2. exten => s,1,NoOp(sales-menu)
  3. exten => s,n,Set(GLOBAL(time_expired_sales)=no)
  4. exten => s,n,Set(GLOBAL(call_already_answered)=no)
  5. exten => s,n,Set(caller_id=${CALLERID(num)})
  6. ;exten => s,n,Dial(local/s@mysales1,40)
  7. exten => s,n,Dial(local/s@mysales1&local/s@mysales2,,40)
  8. exten => s,n,Set(GLOBAL(time_expired_sales)=yes)
  9. exten => s,n,NoOp(to-sales-voicemail====)
  10. exten => s,n(voice-mail),VoiceMail(sales@default,u)
  11. exten => s,n,Hangup
  12. [mysales1]
  13. exten => s,1,NoOp(mysales1)
  14. exten => s,n,Dial(SIP/4001,35,rgM(rx_channel^${CALLERID(num)}))
  15. ;exten => s,n(Callend),Goto(sales,s,voice-mail)
  16. [mysales2]
  17. exten => s,1,NoOp(mysales2)
  18. exten => s,n,Dial(SIP/4002,35,rgM(rx_channel^${CALLERID(num)}))
  19. ;exten => s,n(Callend),Goto(sales,s,voice-mail)
  20. [macro-rx_channel]
  21. exten => s,1,Wait(3)
  22. exten => s,n,NoOp(${DIALSTART})
  23. exten => s,n(ini_stage),Gotoif($[${time_expired_sales}=yes]?end_call) ;== check time expired status of caller
  24. ;.....................................................
  25. exten => s,n,Read(ACCEPT,,1,,,10)
  26. exten => s,n,Gotoif($[${ACCEPT}=1]?Answer) ;== answer the call
  27. exten => s,n,Gotoif($[${ACCEPT}=3]?cid) ;== caller id announcement
  28. ;.....................................................
  29. exten => s,n,Goto(option_timeout) ;== No option entered by receiver
  30. ;.....................................................
  31. exten => s,n(cid),SayDigits(${ARG1})
  32. exten => s,n,Goto(ini_stage) ;== goto initail stage to accept input option
  33. ;.....................................................
  34. exten => s,n(Answer),Gotoif($[${call_already_answered}=yes]?already-answered:not-answered) ;== check the answred status before answring the call
  35. ;.....................................................
  36. exten => s,n(already-answered),PlayBack(tts) ;== ending a call because "it is already answered by some one"
  37. exten => s,n,Set(MACRO_RESULT=CONTINUE)
  38. exten => s,n,Set(MASTER_CHANNEL(ACTION)=3)
  39. exten => s,n,Goto(End)
  40. ;.....................................................
  41. exten => s,n(end_call),PlayBack(hello-world) ;== ending a call because "it's initial time expired"
  42. exten => s,n,Set(MACRO_RESULT=CONTINUE)
  43. exten => s,n,Set(MASTER_CHANNEL(ACTION)=3)
  44. exten => s,n,Goto(End)
  45. ;.....................................................
  46. exten => s,n(option_timeout),Set(MACRO_RESULT=CONTINUE) ;== ending a call because "no option entered by receiver"
  47. exten => s,n,Set(MASTER_CHANNEL(ACTION)=3)
  48. exten => s,n,Goto(End)
  49. ;.....................................................
  50. exten => s,n(not-answered),Set(GLOBAL(call_already_answered)=yes)
  51. exten => s,n,Set(MASTER_CHANNEL(ACTION)=1) ;== answering the call
  52. exten => s,n,Goto(End)
  53. ;.....................................................
  54. exten => s,n(End),MacroExit
  55. -- Goto (sales,s,1)
  56. -- Executing [s@sales:1] NoOp("SIP/hu-out-00000000", "sales-menu") in new stack
  57. -- Executing [s@sales:2] Set("SIP/hu-out-00000000", "GLOBAL(time_expired_sales)=no") in new stack
  58. == Setting global variable 'time_expired_sales' to 'no'
  59. -- Executing [s@sales:3] Set("SIP/hu-out-00000000", "GLOBAL(call_already_answered)=no") in new stack
  60. == Setting global variable 'call_already_answered' to 'no'
  61. -- Executing [s@sales:4] Set("SIP/hu-out-00000000", "caller_id=112021081") in new stack
  62. -- Executing [s@sales:5] Dial("SIP/hu-out-00000000", "local/s@mysales1&local/s@mysales2,,40") in new stack
  63. -- Called local/s@mysales1
  64. -- Called local/s@mysales2
  65. -- Executing [s@mysales1:1] NoOp("Local/s@mysales1-3484;2", "mysales1") in new stack
  66. -- Executing [s@mysales1:2] Dial("Local/s@mysales1-3484;2", "SIP/4001,35,rgM(rx_channel^112021081)") in new stack
  67. == Using SIP RTP TOS bits 184
  68. == Using SIP RTP CoS mark 5
  69. -- Called SIP/4001
  70. -- Local/s@mysales1-3484;1 is ringing
  71. -- Local/s@mysales1-3484;1 connected line has changed. Saving it until answer for SIP/hu-out-00000000
  72. -- Local/s@mysales1-3484;1 connected line has changed. Saving it until answer for SIP/hu-out-00000000
  73. -- Executing [s@mysales2:1] NoOp("Local/s@mysales2-a086;2", "mysales2") in new stack
  74. -- Executing [s@mysales2:2] Dial("Local/s@mysales2-a086;2", "SIP/4002,35,rgM(rx_channel^112021081)") in new stack
  75. == Using SIP RTP TOS bits 184
  76. == Using SIP RTP CoS mark 5
  77. -- Called SIP/4002
  78. -- Local/s@mysales2-a086;1 is ringing
  79. -- Local/s@mysales2-a086;1 connected line has changed. Saving it until answer for SIP/hu-out-00000000
  80. -- Local/s@mysales2-a086;1 connected line has changed. Saving it until answer for SIP/hu-out-00000000
  81. -- SIP/4002-00000002 is ringing
  82. -- Local/s@mysales2-a086;1 is ringing
  83. -- SIP/4001-00000001 is ringing
  84. -- Local/s@mysales1-3484;1 is ringing
  85. -- SIP/4001-00000001 is ringing
  86. -- Local/s@mysales2-a086;1 connected line has changed. Saving it until answer for SIP/hu-out-00000000
  87. -- SIP/4002-00000002 answered Local/s@mysales2-a086;2
  88. ==================================once 4002 answer the call======================================================
  89. -- Executing [s@macro-rx_channel:1] Wait("SIP/4002-00000002", "3") in new stack
  90. -- Remote UNIX connection
  91. -- Remote UNIX connection disconnected
  92. -- Executing [s@macro-rx_channel:2] NoOp("SIP/4002-00000002", "") in new stack
  93. -- Executing [s@macro-rx_channel:3] GotoIf("SIP/4002-00000002", "0?end_call") in new stack
  94. -- Executing [s@macro-rx_channel:4] Read("SIP/4002-00000002", "ACCEPT,,1,,,10") in new stack
  95. -- Accepting a maximum of 1 digits.
  96. -- User entered '3'
  97. -- Executing [s@macro-rx_channel:5] GotoIf("SIP/4002-00000002", "0?Answer") in new stack
  98. -- Executing [s@macro-rx_channel:6] GotoIf("SIP/4002-00000002", "1?cid") in new stack
  99. -- Goto (macro-rx_channel,s,8)
  100. -- Executing [s@macro-rx_channel:8] SayDigits("SIP/4002-00000002", "112021081") in new stack
  101. -- <SIP/4002-00000002> Playing 'digits/1.gsm' (language 'en')
  102. -- <SIP/4002-00000002> Playing 'digits/1.gsm' (language 'en')
  103. -- <SIP/4002-00000002> Playing 'digits/2.gsm' (language 'en')
  104. -- <SIP/4002-00000002> Playing 'digits/0.gsm' (language 'en')
  105. -- <SIP/4002-00000002> Playing 'digits/2.gsm' (language 'en')
  106. -- <SIP/4002-00000002> Playing 'digits/1.gsm' (language 'en')
  107. -- <SIP/4002-00000002> Playing 'digits/0.gsm' (language 'en')
  108. -- <SIP/4002-00000002> Playing 'digits/8.gsm' (language 'en')
  109. -- <SIP/4002-00000002> Playing 'digits/1.gsm' (language 'en')
  110. -- Executing [s@macro-rx_channel:9] Goto("SIP/4002-00000002", "ini_stage") in new stack
  111. -- Goto (macro-rx_channel,s,3)
  112. -- Executing [s@macro-rx_channel:3] GotoIf("SIP/4002-00000002", "0?end_call") in new stack
  113. -- Executing [s@macro-rx_channel:4] Read("SIP/4002-00000002", "ACCEPT,,1,,,10") in new stack
  114. -- Accepting a maximum of 1 digits.
  115. -- User disconnected
  116. =================================== 4002 disconnect by me=========================================================
  117. -- Local/s@mysales2-a086;1 stopped sounds
  118. -- Local/s@mysales2-a086;1 answered SIP/hu-out-00000000
  119. == Spawn extension (mysales1, s, 2) exited non-zero on 'Local/s@mysales1-3484;2'
  120. -- Auto fallthrough, channel 'Local/s@mysales2-a086;2' status is 'ANSWER'
  121. == Spawn extension (sales, s, 5) exited non-zero on 'SIP/hu-out-00000000'
  122. test*CLI>