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()