[asterisk-users] IVR platform for a mobile operator

A J Stiles
2013-01-09T17:16:25Z

On Wednesday 09 January 2013, luke devon wrote:
> Hi Friends ,
>
> I want to setup a IVR platform using asterisk to a mobile operator.
>
> Can somebody give me some guides with recommended hardware types ?

Well, IVR is created in your dialplan  (extensions.conf).  Unfortunately,
without seeing anything resembling some kind of a plan for how you want your
IVR to be, it's impossible to say anything concrete about how to achieve it.


So the following is as much as anyone can really say about how to write a
voice menu-driven app.


"VPJB" is the Very Primitive Juke Box; so called because it has only 2
songs.
They are /songs/track01.mp3 and /songs/track02.mp3.  (You'll have to supply
the music yourself).  You will also need to create two more sound files
(easiest way probably is to leave them as voicemail messages for yourself,
then cp the relevant format files to /var/lib/asterisk/sounds/en/ -- assuming
the sounds are in English.  Replace "en" by your own language code, if
not).
"ajs_juke01" is "Press 1 to hear ___.  Press 2 to hear ___. Press
any other
key to exit".  "ajs_anykey" is "Press any key to stop the
music and return to
the menu".  You start it by dialling 882.

It's not really intended as an app in its own right  (it gets boring very
quickly),  but rather as a demonstration of the essential features of writing
a dialplan app.  And once you understand it, it's actually fairly easy to
extend.  Just implement each menu "page" as a context modelled on
[vpjb].

[default]
; .....
; 882 = very primitive juke box
exten => 882,1,Goto(vpjb,s,1)
; .....

;;;;;;;;;;;;;;;;;  VERY PRIMITIVE  JUKE BOX CONTEXT  ;;;;;;;;;;;;;;;;;
[vpjb]
exten => s,1,Background(ajs_juke01)
exten => s,n,WaitExten(1)
exten => s,n,Goto(1)

exten => i,1,Hangup()

exten => 1,1,Background(ajs_anykey)
exten => 1,n,MP3Player(/songs/track01.mp3)
exten => 1,n,Goto(vpjb,s,1)

exten => 2,1,Background(ajs_anykey)
exten => 2,n,MP3Player(/songs/track02.mp3)
exten => 2,n,Goto(vpjb,s,1)

exten => _X,1,Hangup()


--
AJS

Answers come *after* questions.