Thanks for the helpful reply! Without using macros, the following works well:
exten => 8102,1,DBget(sipcheck=SIP/Registry/${someone}) exten => 8102,3,Dial(SIP/someone,20) exten => 8102,102,Voicemail(u8102) exten => 8102,103,Hangup exten => 8102,104,Voicemail(b8102) exten => 8102,105,Hangup Thanks also for the poke I needed to begin looking into macros. The sample macro-stdexten (which you recommended customizing) looks like: exten => s,1,Dial(${ARG2},20) exten => s,2,Voicemail(u${ARG1}) exten => s,3,Goto(default,s,1) exten => s,102,Voicemail(b${ARG1}) exten => s,103,Goto(default,s,1) I don't see a way to add the DBGet check for a SIP registration in a generic way ... if this is a Zap extension there won't be a registration but we should still try to dial, right? Do I need a macro-stdZAPexten macro that looks like the one above, and a macro-stdSIPexten that looks something like (assumes my SIP naming scheme is based on extension number): ; ; ${ARG1} - Name of SIP peer to dial ; exten => s,1,DBget(sipcheck=SIP/Registry/${ARG1}) exten => s,3,Dial(SIP/${ARG1},20) exten => s,4,Voicemail(u${MACRO_EXTEN}) exten => s,5,Hangup exten => s,102,Voicemail(b${MACRO_EXTEN}) exten => s,103,Hangup in addition to the macro-stdexten one? -Darren -- Darren Nickerson Senior Sales & Support Engineer iFax Solutions, Inc. www.ifax.com [EMAIL PROTECTED] +1.215.438.4638 office +1.215.243.8335 fax ----- Original Message ----- From: To: <[EMAIL PROTECTED]> Sent: Sunday, December 21, 2003 4:48 PM Subject: Re: [Asterisk-Users] Dialing dead SIP peers give misleading (BUSY) voicemail result ... > Rich Adamson wrote: > >>We have several people using SIP softphones in the office. When they leave > >>for the day, they power down their workstations, causing their registration > >>with Asterix to quickly timeout. > >> > >>Here's the entry for one such extension in extensions.conf: > >> > >>exten => 8102,1,Dial(SIP/someone,20) > >>exten => 8102,2,Voicemail(u8102) > >>exten => 8102,3,Hangup > >>exten => 8102,102,Voicemail(b8102) > >>exten => 8102,103,Hangup > >> > >>The desired behaviour when they're gone for the day is to have their > >>voicemail play the 'unavailable' greeting, and record a message. > >>Unfortunately, it seems to play the 'busy' greeting instead: > >> > >> -- Executing Dial("SIP/darren-0eee", "SIP/someone|20") in new stack > >> == Everyone is busy at this time > >> -- Executing VoiceMail("SIP/darren-0eee", "b8102") in new stack > >> -- Playing 'voicemail/default/8102/busy' (language 'en') > >> > >>Obviously this is misleading to the customer ... the person at that > >>extension isn't even in the office, let alone busy. > >> > >>Is this the intended result when trying to dial a disconnected SIP > >>extension, or have I misconfigured something? Does the dialplan above, which > >>was built using analog handsets, need to be more intelligent to deal with > >>SIP connectivity/registration status? > > > > > > I've noticed the same thing. I don't believe its the desired behaviour > > but I don't read C-code well enough to fix it either. > > Add this check to your stdexten macro: > exten => s,3,DBget(sipcheck=SIP/Registry/${sipdevicenameinsip_conf}) > > Check DBget on the wiki. If it fails, there's nothing registred and you can forward > directly to unavailable. If it succeeds, there's a current registration and you can dial as usual. > > I hope this helps. > /O > > _______________________________________________ > Asterisk-Users mailing list > [EMAIL PROTECTED] > http://lists.digium.com/mailman/listinfo/asterisk-users > _______________________________________________ Asterisk-Users mailing list [EMAIL PROTECTED] http://lists.digium.com/mailman/listinfo/asterisk-users