Uncategorized

parse that file and when does it parse the file it parses the file when I load the module so I can connect to the CLI and at runtime when Astra starts up it’ll load in all its modules and rebalance configuration but I can force a reload of the module in this case by just doing a module reload Chan sip right and I reloaded sip that read in the messages configuration a shortcut for that is simply sip reload so I can do a sip reload and it’ll it has the same effect that’s like a shortcut to reloading the module we have a question oh that’s an excellent question so if I reload the sip module do I drop calls and the answer is no unless anything about that unless you’re like restarting Dadi when they’re analog or when they’re dotty which is which is interfacing with hardware you you can’t update configuration without doing some time to schedule to drop those calls I think depending on I’d have to ask our dotty guys if they’ve updated that but that’d been anyone’s and anyone’s experience where they’ve they’ve updated dotty configuration without dropping calls it drops it does drop calls yeah so that’s still the case if it’s in dotty because dotty is interfacing with actual hardware with telephony cards it’s a different mechanism so when you update your dotty configuration you need to schedule downtime with SIP however you can you can you know so I mean we could test it out we’ll see nothing like a live demo right actually let’s do it this way 6:01 dial it out so here my is my call and it’s up and I can do a core show channels there’s my calls and I can do a sip reload and a my calls are still going so I show my channels no problem at all so you you reload the module you’re not you’re not dropping that call right so that’s a really nice thing the other thing that I will mention at this point is that uh you know oftentimes I see a lot of asterisk administrators and they’ll just do this I’ll just say reload Matt reloads everything now on the one hand that’s nice because it doesn’t matter am i working in sip I’m out working in extensions kampf am i doing something else whatever it is I don’t have to remember the thing that I’m doing I just say reload but what’s the bad part of that yeah well you know it reloads everything and you’re not going to see your explicit notices and warnings from that specific configuration right so you know if I look at sip Kampf and let’s just see if I can if I can work it up I messed up a setting there and let’s see if I do sip reload what does it give me ah you have an error right there’s a problem we’ll give it to me again nope maybe I even torqued it let me use sip Kampf so I I purposely broke it let’s do sip reload previous sip reload not done it’s like oh man you really messed me up right core restarts now well tell until you to freeze on me okay sip reload what have we done okay that is that is it’s rope what something is a something is dying on that shell so a service asterisk restart okay let’s see sitcom type because reading all right okay let’s see what yeah I guess it may take it may take some time to load in but because sometimes okay sit yeah why what’s that kill yeah

you guys a mess I know why this is torque enough on me it is because I’m running the VM on my laptop when you close your laptop lid it goes to sleep and it kills your state and so what’s happening now is my system I UNIX system time is off from what’s what’s actual reality it’s causing all of us behavior and so I apologize because I have probably seen this a bajillion how many of you guys run VMs on your laptop and have that’s happened to you or you like closed a laptop and so in any case I that’s my that’s my sir my since so let’s let’s just try this out and hope that my state is maintained did I that do anything we’ll shut it down for now I’ll come back to it later so I will see if my VM oh I’ll pop up in a moment in any case what we’re what we’re discussing so the concept there which I so eloquently described to you is the notion that what’s the head rebooting I know I asked nice the window is a window style configuration well in actually this is a good point so if you’re good Linux this admin you’d like to go granular you try to avoid the reboot if as much as possible so you can kind of see the troubleshooting steps right this is you get a live show of me under pressure troubleshooting my system which is this is the process you really do want to follow which is it’s granular so hey I have a sip issue I want to try just reloading sip oh the sip reload doesn’t work let me let me just try to force reload that modular or see what’s going on because I just want to deal with that module because I don’t want to mess up the rest of my system if it’s not messed up in this case my entire VM was in a misconfigured state and that was kind of the issue I was facing but in any case that’s just a best practice you don’t you don’t want to just go to restart all the time you don’t want to reload to reload everything because you want to get the granular messages from sip which I was trying to show before I killed it so you would want to do a sip reload and just show those sip messages first that was the kind of idea there and then finally to to show basically the idea that that asterisk does not parse the file on the fly right so the idea here is you changed your text file and then it has to read in that configuration so I change sip Kampf I then need to reload the sip module in order to reread in that configuration that’s the kind of notion there that it doesn’t it doesn’t parse on the fly so next up as someone mentioned earlier I need to have an extension to dial my phone so here I create extension 6,001 I’m going to use the dial application and the syntax that I will pass to my dial application the arguments are going to be technology slash resource the technology it could be sip it could be X could be Qian dot e right the resource is going to be for example like a sip account which it needs to be a peer or a friend in order to do outbound dialing or it could be like a dotty Channel you could dial dotty it could be dotty slash 1 or dotty group 1 for like a PRI group or a call group that’s the technology slash resource and then comma and this is a timeout so it’s gonna ring for about 20 seconds so that’s maybe you know four or five rings if you want to think about it that way this is kind of like a timeout so I’ve created a sip account an asterisk created a sip account a number to dial it and I need to get an account on the phone so there’s several ways to get the accounts on the phone let’s just assume for now I’ve gotten my account on the phone and so this will help us see the whole call flow of kind of what happens here okay so let’s say let’s say David’s phone here dials 200 now keep in mind this the abstraction from reality right so I’m gonna say here’s I’m gonna say David dials 200 and that comes in an asterisk over sip and so asterisk looks in sip dot conference says do I have an account for David Wright well it doesn’t really look in sitcoms right it does not parsnip Kampf on the fly instead what it looks in is it looks at its cache of sitcom the last time the module was reloaded if that makes sense so it uh so it says hey do I have an account for David I do have an account for David and

so what is the context where should I start in the DAO plan I will start in a contest called inside then it goes over to the Dow plan cache and it says oh hey here’s an inside context let me start searching down the context until I find 200 which was the number that David sent in so I lo and behold I do have an extension name – 200 what does that extension do well it dials a sip Pierre named Kenny so going back over looking in the SIP cache do we have a device for Kenny yes we do and he’s typing close friends so it is a friend is appear in a user and then what is the host name for that device and it could be dynamic it could be registered for the sake of simplicity I have an explicit IP here and so then it dials out that IP so that’s kind of like the full call flow all of the parts working together the call comes in what’s the SIP account what context is configured for that account okay let me go start in that context do I have that extension okay if I match it great if I don’t then I’ll tell it I don’t have that number right or if it’s not in that context it could be an included context or something like that right so last step in the mix and this is interesting the the state maintained on my phones despite a reboot of the VM which is kinda interesting so let me try this out so the next thing we need to do is we need to we need to actually get an account on the phone so I said hey assuming we have an account of phone but how do we get an account on the phone so there are three predominant mechanisms for getting an account on the phone so the one is just manual configuration so I could go to the screen and hit settings and scroll through the phone and try to type in the actual account credentials that way has anyone ever done that a few folks I’m so sorry that you guys experienced that can I ask what the use case was why you guys needed to do that okay so in the early early days when they didn’t have a web interface that’s what you had okay old old-school phones so these days every phone has a web server on the phone and it has a GUI and so you can actually hit the IP address on the phone and get to a GUI and manually configure the phone and that works pretty nice if you have a few phones you can just manually get them up and going but it doesn’t work nice if you really have like more than three you know if you want to do any type of mass deployment if you’re deploying thousands of phones you really want some type of automated configuration mechanism you don’t want to have to log into every single thousand phones and configuring them all manually so in order to do distributed you know configuration the the common known adopted way of provisioning phones is to use a DHCP options 66 so in your DHCP server you give it a boot protocol and you give it an option 66 and you basically tell it the configuration server right so you can do this in Windows DHCP you can do this in Linux DHCP D whatever your DHCP server is when the when the server gives the phone its IP address it also then tells it oh and hey by the way here’s here’s where to go to get your to get your configuration and it could go and get his configuration using type of protocol so it could use FTP or SFTP or HTTP or HTTPS or back in the day what was really popular was to use TFTP although that’s you know that’s not secure at all so these days I really recommend more HTTPS and actually Digium phones won’t even do TFTP they’ll do ftp ftps HTTP HTTPS but in a case they’ll go let’s say it’s HTTPS they’ll go to that the web server and they’ll download their configuration right Digium phones work just fine that way you can use option 66 and then that configuration is typically a series of XML files and this is not too bad if you have something like an endpoint manager that will write those XML files for you that’s all fine and dandy or in some cases you have to manufacture or write something that’s going to manufacture these XML files and it can be different for different phones if you have like a you know different phones and your install there’s a lot of hassle to that so when did you and want to create their phones we said there’s got to be a better way and so we came up with the Digium phone module for asterisk a digital phone module for asterisk is a way to auto configure the phones with no no fuss to get it up and going so the digi and phone models for

asterisk the way that works is the the phones themselves actually speak em DNS and that’s multicast DNS so when the phone boots up it sends out a multicast message to everybody on a subnet right and it says hey Here I am so without it doesn’t even need a DHCP configuration option just as soon as it boots up it says hey Here I am the server likewise asterisk with the dpma which is the Digium phone module for asterisk dpma boots up and it says oh by the way he Here I am right so without any configuration at all the phone and the server are already know who each other are and they’re already talking to each other and they already know each other’s IP address right so then with the Digium phone module for asterisk what you can do is there’s some configuration in res res digium phone kampf and you can configure in a normal text base file so you don’t need to mess with XML you know to have some type of parser configurator generator to generate that XML you can configure a regular text file like everything in Elson asterisk or you can bump it down to real-time with key value pairs like everything else in asterisk this is a this is what the file looks like so the idea here is I’ve got a couple different sections and I’ll talk about those in a moment but the thing I want to point out is that I create a section here called a line section and so for example on this phone I can have six lines and I can have up to six different sip accounts right so when I say type equals line I really don’t have to put then a lot of information in here no what’s absent there’s no type equals friend there’s no host equals dynamic there’s no there’s no password credentials where does the phone get its password credentials it gets them Auto magically from sip Kampf right so you’ve already set up SIP comp with all of your sip stuff in res digium phone kampf you basically tell it hey go get the data for this sip account and apply it to this phone and res digium phone kampf we’ll just do that for you so this is a nice way especially if you’re doing like SMB style configuration the the phone will boot up it automatically sees a server it’ll push to a list a number of accounts or just like a DHCP you can match on MAC address and so I’ll show you guys my stuff if it will come up let’s find out and we have a question in the back here what happens if it’s not on the same subnet so if it’s not on the same subnet what you can do is then you can still use DHCP because obviously you’re not going to get multicast outside of your network right so if it’s you can use dpma when it’s not on the same subnet so you could use it across VLANs or across networks and so what you do is you you send it a DHCP option that basically says hey here’s your DSU’s your DHCP server or here’s your your resident phone comm server here’s your dpma server and the difference is is with dpma you can do text-based configuration instead of having to do XML based configuration and with dpma you kind of get some bonuses so just to talk about the phones for a second the concept here with the Digium phone is for a long time did you actually than have phones if you guys some of you guys have been kind of in the mix for a long time and people kept on asking us all we need we need to ask respond we need answers phone answers phone and even though there was many phone vendors on the market and people were attaching phones to asterisk nobody designed a phone for asterisk and so did Jim came along and said we will design a phone specifically for asterisk and so for example I already talked about some of the features that are that just come with asterisk right so in asterisk you just get a nice queueing application that queueing application automatically works with Digium phones it just works we designed it for it you get a voicemail application Digium phones work with with asterisk voicemail you get a contacts application there’s there’s all of this kind of stuff where the phone’s tightly integrate with asterisk and so if you’re using dpma you get these you get you basically get like you’ve configured voicemail and like visual voicemail on Digium phones just works so even if you’re on a disparate Network even if you’re using DHCP to say hey go and get your dpma configuration over here it’s still a value to use dpma because then you can get those apps yeah another question what’s that let’s take a look at the file here so if I go to ATS the asterisk and look at res digium phone kampf so here’s a res digium phone comm and you can see this a couple options here so there’s a user list off and there’s a config off so you know you can you can authenticate hey does the

phone pop-up a list of user accounts to choose from know what type of authentication you want you can just set this to be a you know MAC address like that so it’ll set it for Mac configuration I have it configured for basically I’ve disabled all authentication been the phone boots up it just says hey here’s all the accounts I have and you know that’s nice for my configuration but you probably wouldn’t to do it you probably wanna config the MAC address right and then you can tell it’s um you know some mdns ports and I’m calling this my Chia DPM AVM there are options here to specify timezone and then here’s that here’s a network option right so with a network option you can specify multiple networks for the phone for the phone to exist on and behave and if there are if the phone comes up on network a then use this registration server if the phone comes upon network be use this registration in this firmware server those types of settings you can do firmware settings so here our firmware options so these are again kind of what we call a configuration object so the firmware settings is really nice because this is firmware 1.3 but if I want to update the firmware 1.4 which we just released Wednesday actually today I think the blog post went out let’s actually let’s just take a quick peek to blogs Digium dot-com not up yet probably will go out soon so although you can look at this nice blog and put that out on Twitter but um in any case we just released this new 1.4 firmware and so if I want to do to the 1.4 firmware I can have both options available so I can I can granularly select this batch of phones roll the new firmware so I don’t have to roll it to every phone at once right you have that kind of nice option you can set ringtones a bunch of other stuff here I’ve I’ve created a phone this one’s called Allen d70 which is Allen d70 phone and if it’s if Allen wants use his account I can put Allen’s account of the d40 if I want I can put it on d50 I’ve set the firmwares there given his name in his line and and that’s about it and the line ties over to here this is a donor and this matches sip Kampf right so on the top half of the screen here I’ve got sip calm and there’s the a donor and on the bottom half of the screen here I’ve got the line equals a daughter so this here is pointing to this up here right so the the resident phone points to the SIP let’s close that close that down there’s some options there what you can look in is so you can look in the sample file you could look at res digium phone Kampf and you can look at the wiki which is because we still have this outstanding question of hey what is the option to remotely enable and so if you go to that wiki – org and you go to digi mastress products you go to Digium phones and you go here to provisioning and you’ve got xml information custom phone apps and somewhere in here is the option that will tell you might be an FAQ I’d have to look at it I have to look it up but it’s uh the the configuration for it’s on the wiki so I can’t I can’t recall off the top of my head but it is it is documented and it just would take me a moment to find that I can find it during the break we had another question No so the question was can the phones talk to asterisk over eeks and the answer is no the phones are actually sip phones and so if you remember X stands for inter asterisk exchange and so the purpose of eeks is to link it Astra server to another Astra server so it’s a server to server trunking protocol it is not designed for endpoints so although there are some eeks endpoints for example Zoe Persephone will talk eeks it’s it’s not really a protocols designed for endpoints is really designed for trunking so the phones are actually speak standard sip so in this case I’ve configured my res digium phone Kampf and I think that if you guys if you guys want to see how how it all works you can kind of stop by the booth and I can show you reconfiguration or if you want to come up here and play

with the phones I can basically show you when the phones boot up they find the server and they pull their configuration and from a user point of view you know you put a phone on the desk it they boots up and knows who it is it behaves exactly the same as option 66 the difference is is it took you as a system administrator or as the Astra’s integrator it took you about 25% of the time to build all that than it would to be to build out all the other stuff there and is the kind of difference so you know from a behavior point of view it’s real similar but it lets you kind of do that automatically so that is the review you basically configure count for asterisk configure accounts for the phone get an extension to Val phone and we’re up and going so any any other questions on endpoint configuration let’s jump back to the dial plan all right let’s take a look at this so this has us going until three o’clock so we’ve got about 15 minutes to hit this well we’ll see how far we go if if we kind of get to around three o’clock we might just kind of stop in the middle and come back so we’ll see we’ll see kind of how it goes so call this session interactive dial plan so we’ve kind of already configured some dial plan that is we’ve done some things we’ve dialed a phone which in a little bit of a you know just sample dial plan but I want to interact with my dial plan I want to do some things so we’re gonna look at some more advanced dial plan applications we will actually make a voice menu so actually configure in an auto attendant IVR and asterisk and we will implement voicemail for the endpoints that we just configured right so IVR basics now if you are coming from the old the old school kind of like telephony world so people come to asterisk from different disciplines so some people come from the networking world some people come from like you know did their developers their software developers predominantly some people come from like the server assistant admin kind of a world and then some people come from the telephony world and then some people come from the Linux world so you kind of have like these five different disciplines of asterisk and people come from different backgrounds in any case if if you kind of have been in the telephony world for a long time you probably remember that once upon a time an auto attendant and an IVR were two very different things and the thing that separated an auto attendant from an IVR was ten thousand dollars basically the auto attendant was a very simple device it was like press one for sales pressed for two for support you know we’re all familiar with auto attendants and that would just route calls to a different destination and IVR on the hand other hand this was his toric lee historically an IVR was something that would get like a result from a database and you know have some other type of interactivity that was more customized and expensive an asterisk they’re effectively the same thing the way you configure an auto attendant you can do all types of IVR functionality with the same type of dial plan code so in the VoIP world where asterisk is prevalent a lot of times people just interchange auto attendant an IVR there they’re interchangeable worlds when somebody says IVR they can mean press one for sales press two for support and an IVR is an auto attendant as an IVR it’s all kind of the same so let’s actually take a look at an IVR menu so here is an example of a slide that basically has built an auto attendant in dial plan so there’s a little bit going on here so I’ll break it down step by step the first thing to notice is that an IVR basically is a dial plan context or it could be a series of contexts but at its most basic it’s just a dial plan context so if you remember I talked about having for example extensions to dial come in and route somewhere in one context and maybe extensions that do outbound dialing put those in another context well here I’ve got my IVR in a context so I say go to the IVR context or in this case go to the AAA menu the auto attendant menu context and inside that context I’m gonna do some you know auto attendant like behavior the next thing to note is

that I’m using the S extension here now this is a bit of a historical convention but it’s still a valid one nonetheless the S extension is a what we would call a special a special extension an asterisk so does anybody know what we would call a special extension well how would you describe a special extension okay yeah the answer was that you know a rouse to an application and that’s probably pretty good because it routes under certain conditions right so the special extensions are gonna route under certain conditions so for example s stands for the start extension and the the call will automatically route to s when there is no D ID information for the channel okay so effectively what happens is if you drop a call into a context and it doesn’t have any number to route on so normally you drop a call into a context you say I want extension 100 or I want extension Bob right well what happens if you drop a call into a context and the call is just there it doesn’t have any D ID information then it will automatically route to the S extension and so the question would be when would when would a call ever not have that information and the answer is is when you’re using an analog line so when using a historical analog line if you think about like the phone line at your house when you get a call to the phone the analog hard pots line at your house you don’t get like extension 100 or 101 or 201 your phone just rings you’ve just get a call right so imagine if you took that phone off of that line and plug that line into asterisk that call would come in to asterisk from the telco them for faxing is a great use a lot of times you put in a whole VoIP system put in an fxo line for your faxing you’re going to be happy you did an F excess out to the fax machine that’s going to work nicely for you a lot of times people like it for 9-1-1 dialing those sorts of things so there are use cases today but it’s rare that you would have inbound calls going to say an IVR right so that doesn’t have to be s it could be whatever I want but via convention and history that’s what we’ve chosen first thing I do is I answer the channel okay the reason I answer the channel is because I want to be able to pass media on that channel and I can’t pass media on that channel unless I the channels answered now I could do early media so I could use the progress application to tell the line hey I’m gonna send media to you but don’t answer this channel yet and so this would kind of be like if you’ve ever called your buddy’s cell phone and it says please hold while your party is reached and then it plays you kid rock or something like that that’s that’s or Media so or I guess these days it would be like McLemore or something like that then it that’s early media and in this case I’m just answering the channel now note when that channels answered that is the moment at which the CDR record will start we’ll start the billing timer right so if you’re doing billing based on your call detail records CDRs are called detail records when you answer a channel you’re not building for that call so keep in mind that we were you know we’re keeping track I say we’re now building for that call there’s nothing an asterisk that that you know it Astra’s doesn’t put out a bill right what I’m saying is Astra’s creates a record and then when you read those records you put out the bill right any case you might want to be cognizant of that if somebody dials in your system they haven’t gotten to anybody yet this would be a reason to do early meet or something so you don’t you don’t build them or to basically put in provisions there that’s kind of a tangent next up I’ve got a priority label here called menu beginning and I’m using the background application background application works very similar to the playback application where it plays an audio file and this one’s gonna play one called main menu the difference between background and playback is that background plays the audio message and then it listens for DTMF and so it’s listening for key presses DTMF is dual-tone multi-frequency it’s the it’s the buttons you press on your phone right and so as soon as it gets an unambiguous match it will route that call so for example let’s say i have extension 1 and extension 100 if I just press 1 it’s gonna wait like five seconds to say did you mean one for sure or did you mean 100 because it’s it’s ambiguous right but if I have extension two and I don’t have anything else I starts with the two when I press two I go straight there as it as a matter of course it is a best practice to name your external or your I’m sorry your internal extension naming conventions off of high numbered names so for example if you call did geum’s main line and you want to dial my extension my extension starts with a six it’s six zero nine nine

right the reason why you wouldn’t want to use six or seven or an eight is that you want to use those high numbers because that way you’re not worried about unambiguous matches and your lower numbers because you want your IVRS options one two and three to route real speedy now you might say oh well what about my IVR menu that has options six seven and eight and the answer is if your IVR has options six seven and eight then we will make fun of you and your customers will leave because there’s too many options right so keep your IVR simple and while I’m talking about yours I mean obviously we’re talking about a voice IVR hear right we’re talking about dialing into a phone and hitting DTMF keys and get it routed we have all been driven crazy by these things why because of poor design right because somebody had you know for option one do this for option nine do this I mean it’s nuts right we’ve seen poor design it’s not that IVRS are bad five years are great IVRS accomplished a lot of things they’re wonderful in fact I remember one time I was uh I got put in charge of this this stupid sign so the sign basically had a modem in it and it was like one of those marquee signs out on the side of the road and they were like Oh Billy you are in charge of the phones fix the sign just because they had to vote him in it or because they had a line right so I don’t know I didn’t know the first thing about the stupid sign and I’m like okay well I better call so I call the number and I’m basically I have no idea who to ask her what to talk to you to get information about this and I’m thinking to myself I’m just gonna listen to their IVR and when I get to like their technical support people I’ll just be like you know three four customer support or whatever right so I called the number and I hear it ring and then I get a hello it’s a real person and I’m like oh crap hello and like whoa what can I help you out with it I’m like well I had this broken sign and she says well who do you want to talk to you and I say I don’t know I need your customer support department and she’s like oh well I don’t know who is that who can i route your call to so I had to spend like 30 minutes explaining my problem to this woman who said I think you need Bob so then I got over to Bob and I spent 30 minutes explaining my problem to Bob and the Bob’s like no you need Pete and I think Pete finally helped me out that was terrible customer service and I really really wish they would have just put in an IVR right would have made my life great so I viewers are great I’d go on its way long far too long of a tangent just to talk about poor design how much poor design can impact our customer service right and so this is just a break from the technical stuff to say is we’re all implementing solutions there’s a lot of cool technical things you can do with asterisk but remember who you’re doing it for and especially I want to make the point about WebRTC because what happens is as we are progressing this will move on to your website right so this is not a very intelligent mode for information when i dial in I have to listen to a menu at best I can get three or four menus and then I have to go to three or four sub menus and three or four sub menus right but what if I’m on your webpage right let’s say I’m browsing your web page well first of all I’m logged in so you know you already know my name you’re already authenticated I shouldn’t have to punch in my 16 digit PIN code and then when I get to an operator can you please confirm your 16 pin to pin code right I shouldn’t need to do that because I’ve already authenticated to your website all right so I’ve already thought to get your website and I have a session cookie you already know my browsing history so you know that I’ve been browsing for IP phones on the website right and you know that I’ve typed into the search engine that I am looking for information about dpma right all this information we should just know I’m not saying this is available today from Digium but I’m I’m just painting the picture for you right so the idea is when someone’s on your website you have all of this state right so then when they click on the Help button there shouldn’t be a big long menu you know what should be at the top of the menu would you like help with phones yes click on that and then it connects you to the agent right then you reroute the call an asterisk then asterisk routes the call and when the and it probably is going to do through WebRTC or some other mechanism right but when asterisk rusts that call then when the college it’s gonna pop up is gonna say oh hello mr. Chia I see that you’ve already authenticated with us and I I see that you’re looking for some are you looking for some help with DPM a today because you should know all that because those the pages that have been on the site right and that’s a very fluid wonderful customer experience you get to their answer really really fast right so if you’re still doing voice menu which is not going to go away tomorrow or anytime soon I’m just painting the picture for what could be with WebRTC what is coming soon but we’re gonna see it it’s gonna be multimode for a long time right but as you’re building your IVRS you want to think about customer experience you know you don’t want to have more than three or four options you want to keep it short you want to in

fact even take another cue from the web right so on our website we check which pages are the most visited right every one of us does this and the the support pages that get hit the most we put at the front of the we don’t make them do 17 clicks to get to that page right same thing with your IVRS if you’ve got like 12 menus in your IVR and menu number seven is the one that gets hit all the time that should be menu number one right you should be it you should track those metrics so all that’s some free integration advice for you there on a long tangent to get around that when you press one it’s gonna route to one and when you press two you is going to route the two and you can see here I’m using the cue application to call one for cue for sales and two for support three is gonna spawn off a company directory zero is gonna dial the operator that’s always a really nice option you know I’ve if you guys know life he shared a story with me once that he said he decided enough IV ARS I had speech recognition on him that if you started cussing at the phone then he routes to an operator because you know that the the that customers really mad right so anyway it’s just about good customer service right in here I’ve included my phone’s context so assuming that I have a context that dows on my internal phones why would I include that context assuming some people know what a context include is exactly so this is the feature I can have in my menu to say please enter the extension of the person you like to dial at any time I do that via what we call a context include and what that does is it takes that other box of extensions and it adds those extensions to this con as well so they can be reached from here as well we call that a context include so at a base level that’s kind of the IVR menu there are some alternate approaches to IVR so rather than using the background fit yeah in question oh okay that’s excellent question I got far off in the weeds here and but what did the eye and the tea do was the question and that’s a great session so I talked about special extensions I talked about the s special extension when a call comes in with no deity information it auto routes to the S extension what happens if I have options 1 2 3 and 0 what happens if i press 5 well 5 is not an option 5 will take you nowhere it’s an invalid extension the call will automatically route to the I extension right what happens if I say hey welcome to Digium press 1 for sales to for support 3 for the directory 0 for an operator and then I just wait and I wait and I wait and I wait and I wait and I wait forever and the customer doesn’t say anything what happens well after 10 seconds or so and it’s configurable after after a timeout I’m gonna go to the lowercase T extension which is the timeout now in starting with 1 8 you could do this with e so the e special extension is like error and E will take you if it’s invalid it’ll go to e if it times out it’ll go to e so it handles both of those use cases with one special extension which is kind of nice and when you might want to do something different if it’s invalid you might want to say I’m sorry this on the eval extension and if it times out you might want to say you know please try again or something something like that so you could do it either granularly or you could do with what with one special extension and that’s what those do here in addition you see some additional logic here and I’ll get into this into the next session where I’m routing conditionally based on a variable and so what this does is let’s compare these two IVRS so here’s an IVR and what happens if I call in and I wait 10 seconds and I don’t say anything at all it’s going to route to T it’s gonna playback I’m sorry and then go back to the menu beginning at the menu beginning it’s gonna say hey please enter your options it’s gonna wait in time about what if I just leave the phone off the hook and just walk away I’m gonna be tying up that channel into perpetual ‘ti right it’s never ever gonna hang up on that and that’s also poor IVR design because you’re tying up your system resources instead what you want to do is you want to basically say kind of like three strikes and you’re out if you go through the menu three times and you you’re there’s nobody really there it’s just like a hung channel or something then you want to hang up on the IVR and jettison those resources and that’s what this logic is showing here and I’ll talk about more that of that in the next session we’ll go through exactly what the syntax is looking like so before we pop off to a short break here I’ll talk about just some alternate approaches so rather than using the background application you could use the read application and a go to if and so the read application is very similar but the difference is is it will play an audio file and listen for DTMF but instead of routing for that

DTMF it will write that DTMF into a variable so then you can do something with that variable you can route conditionally on it it’s another approach both are equally valid you could use text-to-speech caps troll is an excellent text-to-speech engine so rather than having recordings you could have custom recordings there is Alison Smith who’s the voice of asterisk has like a database of names where when you’re calling customers and you’re doing text-to-speech based on you know dynamic information that you’re pulling from a database or your web database or whatever your customer client lists that it can read their name and and there’s a whole list of names that you can purchase there’s all that kind of cool stuff I saw the lumen box guys earlier I think those guys have a booth here lumen box best tech those are speech recognition engines there’s a couple other ones we’re running short so I won’t talk a lot about speech rec basically my my advice on speech rec you want to say yes and no you do not want to do speech track on get me to a dialed operator for my special fancy thing if you’re trying to speech track on that it’s not gonna work out someone’s mobile phone so oh that’s my short on that do we have any questions any other questions on IVRS before we pop off to a break

You Want To Have Your Favorite Car?

We have a big list of modern & classic cars in both used and new categories.