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

Olle E. Johansson oej at edvina.net
Sun Dec 21 14:48:20 MST 2003


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




More information about the asterisk-users mailing list