[Asterisk-Users] Dialing dead SIP peers give misleading (BUSY) voicemail result ...

Darren Nickerson darren.nickerson at ifax.com
Sun Dec 21 16:13:43 MST 2003


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
darren.nickerson at ifax.com
+1.215.438.4638 office
+1.215.243.8335 fax

----- Original Message ----- 
From:
To: <asterisk-users at lists.digium.com>
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
> Asterisk-Users at lists.digium.com
> http://lists.digium.com/mailman/listinfo/asterisk-users
>




More information about the asterisk-users mailing list