Board logo

標題: Inbound route to share [打印本頁]

作者: ckleea    時間: 2011-9-11 13:07     標題: Inbound route to share

Is it possible to share inbound sip trunk and based on caller ID or pins to configure which asterisk server to forward and respond? Any one has dial plan or scripts to share?
作者: bubblestar    時間: 2011-9-11 18:50

This is a bit complicated but it works fine.  It is a combination of auto-attendant, personal hidden menu (not announced through the handset to the caller) designed by myself and PIN protected IVR.  See if it helps and you understand how to use.
  1. [auto-attendant]  
  2. exten => s,1,GotoIf($[${CALLERID(num)} = 91239123]?bubblestar)
  3. same => n,GotoIf($[${CALLERID(num)} = 92469246]?ckleea)
  4. same => n,GotoIf($[${CALLERID(num)} = 91359135]?yhfung)
  5. same => n,Goto(mainmenu,s,1)
  6. same => n(bubblestar),Goto(hi-bubblestar,s,1)
  7. same => n(ckleea),Goto(hi-ckleea,s,1)
  8. same => n(yhfung),Goto(hi-yhfung,s,1)

  9. [mainmenu]
  10. exten => s,1,Background(mainmenu)
  11. same => n,WaitExten()  
  12. same => n,Hangup()  

  13. exten => 1,1,Goto(viaPSTN,991239123,1)                        ; dial to bubblestar's Mobile via PSTN directly  
  14. exten => 2,1,Goto(viaPSTN,992469246,1)                           ; dial to ckleea's Mobile via PSTN directly
  15. exten => 3,1,Voicemail(3001@default)                                ; Go to voicemail box
  16. exten => 8,1,Goto(IVR,s,1)                                        ; hidden menu for personal dial to IVR
  17. exten => 9,1,Hangup()                                        ; let the caller dials 9 to exit
  18. exten => 0,1,Goto(mainmenu,s,1)                                ; let the caller dials 0 to repeat the menu

  19. exten => i,1,Playback(option-is-invalid)   
  20. same => n,Goto(s,loop)  

  21. exten => t,1,Playback(are-you-still-there)  
  22. same => n,Goto(s,loop)

  23. [hi-bubblestar]
  24. exten => s,1,Background(hi-bubblestar)
  25. same => n,WaitExten()  
  26. same => n,Hangup()  

  27. exten => 1,1,Goto(viaPSTN,991239123,1)                        ; dial to bubblestar's Mobile via PSTN directly  
  28. exten => 2,1,Goto(viaPSTN,992469246,1)                           ; dial to ckleea's Mobile via PSTN directly
  29. exten => 3,1,Voicemail(3001@default)                                ; Go to voicemail box
  30. exten => 8,1,Goto(IVR,s,1)                                        ; hidden menu for personal dial to IVR
  31. exten => 9,1,Hangup()                                        ; let the caller dials 9 to exit
  32. exten => 0,1,Goto(mainmenu,s,1)                                ; let the caller dials 0 to repeat the menu

  33. exten => i,1,Playback(option-is-invalid)   
  34. same => n,Goto(s,loop)  

  35. exten => t,1,Playback(are-you-still-there)  
  36. same => n,Goto(s,loop)

  37. [hi-ckleea]
  38. exten => s,1,Background(hi-ckleea)
  39. same => n,WaitExten()  
  40. same => n,Hangup()

  41. exten => 1,1,Goto(viaPSTN,991239123,1)                        ; dial to bubblestar's Mobile via PSTN directly  
  42. exten => 2,1,Goto(viaPSTN,992469246,1)                           ; dial to ckleea's Mobile via PSTN directly
  43. exten => 3,1,Voicemail(3001@default)                                ; Go to voicemail box
  44. exten => 8,1,Goto(IVR,s,1)                                        ; hidden menu for personal dial to IVR
  45. exten => 9,1,Hangup()                                        ; let the caller dials 9 to exit
  46. exten => 0,1,Goto(mainmenu,s,1)                                ; let the caller dials 0 to repeat the menu

  47. exten => i,1,Playback(option-is-invalid)   
  48. same => n,Goto(s,loop)  

  49. exten => t,1,Playback(are-you-still-there)  
  50. same => n,Goto(s,loop)

  51. [hi-yhfung]
  52. exten => s,1,Background(hi-yhfung]
  53. same => n,WaitExten()  
  54. same => n,Hangup()

  55. exten => 1,1,Goto(viaPSTN,991239123,1)                        ; dial to bubblestar's Mobile via PSTN directly  
  56. exten => 2,1,Goto(viaPSTN,992469246,1)                           ; dial to ckleea's Mobile via PSTN directly
  57. exten => 3,1,Voicemail(3001@default)                                ; Go to voicemail box
  58. exten => 8,1,Goto(IVR,s,1)                                        ; hidden menu for personal dial to IVR
  59. exten => 9,1,Hangup()                                        ; let the caller dials 9 to exit
  60. exten => 0,1,Goto(mainmenu,s,1)                                ; let the caller dials 0 to repeat the menu

  61. exten => i,1,Playback(option-is-invalid)   
  62. same => n,Goto(s,loop)  

  63. exten => t,1,Playback(are-you-still-there)  
  64. same => n,Goto(s,loop)

  65. [IVR]
  66. exten => _s,1,Wait(1)
  67. same => n,Authenticate(9999,,4)                                ; PIN authentication
  68. same => n,Set(Loop=0)
  69. same => n,While($[${Loop} < 3])
  70. same => n,Background(vm-enter-num-to-call)
  71. same => n,WaitExten(10)                                         ; Wait 10 seconds for user to enter input
  72. same => n,Set(Loop=$[${Loop}+1])
  73. same => n(LoopEnd),EndWhile()
  74. same => n,Playback(vm-goodbye)
  75. same => n,Hangup()                                        ; No input from user, so hangup
  76. exten => i,1,Playback(pbx-invalid)
  77. same => n,Goto(s,7)
  78. exten => t,1,Playback(vm-goodbye)
  79. same => n,Hangup()
  80. exten => h,1,Hangup()
複製代碼

作者: ckleea    時間: 2011-9-11 20:16

回復 2# bubblestar


    Thanks. look interesting. I did have similar dialplan before but can't use "s" properly.
作者: bubblestar    時間: 2011-9-11 20:42

本帖最後由 bubblestar 於 2011-9-11 20:47 編輯

If "s" is not workable (I think telephony card can accommodate "s" more comfortably), you may explicitly indicate your destination phone number such as home or office number and the like in lieu.

Frankly, telephony card is much stronger in recognizing DTMF and "s" and can handle them in a flexible and proper manner.
作者: bubblestar    時間: 2011-9-11 20:54

For forwarding to the desired Asterisk Server, I don't know whether we should make use of the load balancing capability of DUNDi or not.  If someone knows, please share.
作者: ckleea    時間: 2011-9-11 21:03

回復 4# bubblestar


    Agreed. In using purely sip trunk, this are always some minor problems come in and go.
作者: ckleea    時間: 2011-9-11 21:03

回復 5# bubblestar


    I will properly use a SIP or IAX command to dial to an extension of other asterisk server.

You have showed a good example to study
作者: ckleea    時間: 2011-9-11 22:26

Still some problems in getting long DTMF keys to accept
作者: bubblestar    時間: 2011-9-11 22:50

Try fine tuning your ATA as well such as relaxdtmf=yes to avoid using strict DTMF option.  Echo cancellation adjust can also help to strengthen the recognition of DTMF signal.
作者: ckleea    時間: 2011-9-12 22:30

回復 9# bubblestar

Will try again
作者: ckleea    時間: 2011-9-17 10:14

I think I can base on the callerID to forward to any sip/iax machine to do other things. However, this is not a good idea.

I may need to create another IVR menu to do manual transfer based on DTMF keys and PINS.
作者: bubblestar    時間: 2011-9-17 16:26

本帖最後由 bubblestar 於 2011-9-17 16:29 編輯

Auto-attendant 及 IVR menu 可以寫得千篇萬化,最緊要是切合個人使用習慣和喜好及方便易用。但還需要配合實際網路電訊供應商的DTMF訊號是否能融合,才能達致理想的效果。

再者,例如有時候從北京打入可以食到DTMF Keys + PINS,但也不代表從四川、青島或歐美某地方打入來的電話也一樣食到DTMF Keys + PINS 的。 暫時來說,CallerID 算是比較可靠的辨識媒介了。而且DTMF 訊號技術可能因地區地域不同,有時會導致不同程度的不協調啊。

其實,只要設定幾個主要(重要家人/朋友/親屬) 號碼,轉駁至特定IVR/auto-attendant,提供由自己設定的專項服務,其他人的號碼也可以不需理會,直接接去某條專線或當正常來電看待處理就可以了,不需大費周章。
作者: ckleea    時間: 2011-9-17 22:09

已試based on callerID forward to different asterisk machines.




歡迎光臨 電訊茶室 (http://telecom-cafe.com/forum/) Powered by Discuz! 7.2