Hi All, I have a new asterisk setup running at home and am very happy with it. One thing that I am trying to do is to take various actions in the dialplan *if* a particular phone is registered/authenticated/connected. For example, if someone dials *me* and is shows that I am connected via my softphone, to try it instead of my deskphone (and possibly notifiy the user in advance that it is taking that action). I didn't see any way to do this using the standard applications - would someone be able to point me in the right direction? Thanks! Tim
Kevin P. Fleming
2005-Feb-23 10:38 UTC
[Asterisk-Users] Able to tell if phone is registered?
Tim Pushor wrote:> I have a new asterisk setup running at home and am very happy with it. > One thing that I am trying to do is to take various actions in the > dialplan *if* a particular phone is registered/authenticated/connected. > For example, if someone dials *me* and is shows that I am connected via > my softphone, to try it instead of my deskphone (and possibly notifiy > the user in advance that it is taking that action).Just go ahead and try to send the call there... it will fail immediately if it is not registered, with a DIALSTATUS of CHANUNAVAIL. If you are using CVS HEAD, you can use "regexten" to accomplish something similar, but I wouldn't recommend it as it's about to change :-)
Nathan C. Smith
2005-Feb-23 11:07 UTC
[Asterisk-Users] Able to tell if phone is registered?
Hi All, I have a new asterisk setup running at home and am very happy with it. One thing that I am trying to do is to take various actions in the dialplan *if* a particular phone is registered/authenticated/connected. For example, if someone dials *me* and is shows that I am connected via my softphone, to try it instead of my deskphone (and possibly notifiy the user in advance that it is taking that action). There are a couple ways, but within the dialplan you can use chanavail(). On the console you can type "show application appname" to get more information about applications such as chanavail and dial. On the failure of a dial command the priority jumps 101, so for instance if you softphone was dialed at priority 3 and it failed the execution would jump to priority 104 where you could attempt to dial your deskphone. Finally, you can use the asterisk database. By dialing an extension to set a database value and checking for a value in the dialplan you can use logic to decide whether to dial an extension or not. Most of this is documented reasonably well on www.voip-info.org once you know what you are looking for. -Nate
<< I was wondering if I could do something with regexten, but seemed like a messy solution. Is there any other way? I don't mind getting my hands dirty with perl or C, but I wouldn't really know where to start ...>> A suggestion is to take a look at the commands available at the CLI and determine if the information they provide would meet your requirement. In particular look at the command "database show". This will/should show the phone registered and you can query the contents of the database from the dialplan using DBGet(). If this does not meet your needs you could try some of the other command to see if they do provide the information you are looking for. For example, the CLI command "sip show peers". Information such as that from the sip show peers command is not available (so far as I'm aware) from the dialplan. However, if one or more CLI commands do provide the information you are looking for and you are prepared to write a little code, you can use the Manager API to call these commands and write the status into the registry database or into variables. It would be inefficient to have to run a manager command periodically. Fortunately, Asterisk provides some "event" information to processes listening on the Manager API port. The events broadcast include register/unregister actions. By monitoring the events your code can respond to the events of interest and, for example, update status variables dynamically. For more information about the Manager API see: http://www.voip-info.org/tiki-index.php?page=Asterisk%20manager%20API Bill Seddon Lyquidity Solutions Limited -----Original Message----- From: asterisk-users-bounces@lists.digium.com [mailto:asterisk-users-bounces@lists.digium.com] On Behalf Of Tim Pushor Sent: February 23, 2005 5:56 PM To: Asterisk Users Mailing List - Non-Commercial Discussion Subject: Re: [Asterisk-Users] Able to tell if phone is registered? Kevin, Thanks for the reply, and thats what I am doing now, but I would really like to know in advance if a particular phone has been registered before taking a certain action. I was wondering if I could do something with regexten, but seemed like a messy solution. Is there any other way? I don't mind getting my hands dirty with perl or C, but I wouldn't really know where to start ... Thanks, Tim Kevin P. Fleming wrote:> Tim Pushor wrote: > >> I have a new asterisk setup running at home and am very happy with >> it. One thing that I am trying to do is to take various actions in >> the dialplan *if* a particular phone is >> registered/authenticated/connected. For example, if someone dials >> *me* and is shows that I am connected via my softphone, to try it >> instead of my deskphone (and possibly notifiy the user in advance >> that it is taking that action). > > > Just go ahead and try to send the call there... it will fail > immediately if it is not registered, with a DIALSTATUS of CHANUNAVAIL. > > If you are using CVS HEAD, you can use "regexten" to accomplish > something similar, but I wouldn't recommend it as it's about to change> :-) > _______________________________________________ > Asterisk-Users mailing list > Asterisk-Users@lists.digium.com > http://lists.digium.com/mailman/listinfo/asterisk-users > To UNSUBSCRIBE or update options visit: > http://lists.digium.com/mailman/listinfo/asterisk-users_______________________________________________ Asterisk-Users mailing list Asterisk-Users@lists.digium.com http://lists.digium.com/mailman/listinfo/asterisk-users To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users