Extentions-custom.conf IVR

I am NOT a phone guy. I am computer guy with some programming understanding. I also like ARGs (Alternative Reality Gaming) [Follow a story and the players intact to solve puzzles and move the story along]. interested I can post some examples.

I want to create my own ARG and I would like to incorporate phone interaction ; agent codes and missions, checkins, puzzle delegation, and so forth.

I have installed freepbx onto a rasberryPi obtained so many SIP accounts and DID’s I have lost track but I finally was able to receive calls, cannot make them and that is another issue and not that important really ( so I will attack that another time).

I want to make a DEEEEEP IVR menu and use googleTTS.agi for the prompts but I am not really grasping where these are placed in the extensions_custom.conf and how to invoke them based on the DID incoming route.


DID 415-555-1212 = Umbrella corp job line
this would basically do a job interview to a point of player fail and dumped back at top or hired and given tasks/puzzles/missions to complete

""CODE EXAMPLE"" [umbrella] exten => s,1,Answer() exten => s,n,Set(TIMEOUT(digit)=5) exten => s,n,agi(googletts.agi,"Thank you for calling the umbrella corporation ",en) exten => s,n,agi(googletts.agi,"If you are a journalist press 1, if you are looking for employment opportunities press 2, if you are an agent in need of direction press 3, if you are an agent in need of extraction due to your cover being discovered press 4, if you are an agent with information that needs to be vetted press 5 if have dialed the wrong number and are now terribly intrigued but what you have heard press 6, If you would like to hear how the umbrella corp has your future under control press 7",en) ;;Wait for digit:

exten => 1,1,Goto(Umbrella-press-pack,s,1)
exten => 2,1,Goto(Umbrella-employment,s,1)
exten => 3,1,Goto(Umbrella-help,s,1)
exten => 4,1,Goto(Umbrella-extraction,s,1)
exten => 5,1,Goto(Umbrella-verify-data,s,1)
exten => 6,1,Goto(Umbrella-New-recruits,s,1)
exten => 7,1,Goto(Umbrella-commercial,s,1)

;more menus

;more menus

;more menus

;more menus

;more menus

;more menus

;more menus


DID 213-555-1212 = Rhyspodical Philatelic Society
this would an agent check in. one would have to locate a certain point derive and answer for a puzzle at the location and enter the answer before being able to move on to the next puzzle. maybe later providing extensions and VM for personal missions.

""CODE EXAMPLE"" [Rhyspodical] exten => s,1,Answer() exten => s,n,Set(TIMEOUT(digit)=5) exten => s,n,agi(googletts.agi,"Thank you for calling.................................... ""CODE EXAMPLE END"" So one PBX instance treat DID's as separate departments neither line should cross, never ever let the lines cross, two separate games on computer loads of fun

how would I set up my routes to start at the right point of the extensions_custom.conf.

I am thinking make virtual extensions ie 9876 = [umbrella] 5432 = [Rhyspodical] and point trunk umbrella DID to 9876 as destination and 5432 to stamp DID as destination. I was trying that but it seemed to have broken everything and since I spent the last month finally getting calls picked up and trunks registered I got scared and finally decided if there was anyone what could explain the conf file call flow.