Erik de Wild: Tripple-o
2008-May-12  22:42 UTC
[asterisk-users] Require a Touch-Tone to Connect? proof of concept with meetme()
I have read the post about the touch tone before to connect so  
transfered calls don't end up in voicemail boxes of mobile phones. I  
have done some work last year on transfering an inbound call to  
different extensions by using meetme() and local channels so a whole  
group can start talking. I end up with a remarkably low number of  
lines and it is actually working . It is just a  proof of concept that  
can be complemented with voiceprompts and a mechanism to make sure  
that just one extra line enters the conference room. If you have  
improvements please share them on the mailing list. I hope someone  
will find this usefull.
Below are the actual Asterisk lines. It is pure old fashioned Asterisk  
without any additional AGI scripts or whatever.
With friendly regards,
Erik de Wild
Tripple-o
Your Asterisk migration partner
;;;;;;;;;;;;
; this is where te inbound call is routed to  with exten =>  
<whatever>,n,Goto(inbound_forking,s,1)
;;;;;;;;;;
[inbound_forking]
;;;;;;;;;;;;
; this are the three local channels used for dialing the external or  
local numbers. In this
; example all the numbers are external
;;;;;;;;;;;;
exten => s,1,Dial(local/intern1 at meetme&local/intern2 at
meetme&local/
intern3 at meetme,20)
;;;;;;;;;;;;
; this is where the inbound call is routed to the conference room,  
notice the /n
;;;;;;;;;;
exten => s,n,Dial(local/inbound at meetme/n,10)
[meetme]
;;;;;;;;;;;;;;;;;;;;
;; extension for the inbound call
;;;;;;;;;;;;;;;;;;;
exten => inbound,1,MeetMe(9000,qM1)
exten => inbound,n,Hangup()
;;;;;;;;;;;;;;;;;;;;;
  ; extensions for the three (or more) different outbound lines
; that are routed into a macro
;;;;;;;;;;;;;;;;;;;;
exten => intern1,1,Dial(SIP/3120xxxxxxxx/0031621xxxxxx, 
20,M(meetme_test))
exten => intern2,1,Dial(SIP/3120xxxxxxxx/0031642xxxxxx, 
20,M(meetme_test))
exten => intern3,1,Dial(SIP/3120xxxxxxxx/0031556xxxxxx, 
20,M(meetme_test))
;;;;;;;;;;;;;;;;;;;;
; this is the macro for joining the conference room
; first it read the number of
[macro-meetme_test]
exten => s,1,Set(ROOMNUMBER=9000)
exten => s,n,MeetMeCount(${ROOMNUMBER}|COUNT)
exten => s,n,Wait(2)
exten => s,n,SayNumber(${COUNT})     ; as long as the number is 0 or 1  
it makes sense to join
exten => s,n,Authenticate(1)                     ; here is the one  
touch needed before you can join. A voicemail box of a mobile can't do  
that <;-)
exten => s,n,Meetme(9000)
exten => s,n,Hangup()