[asterisk-users] how to determine if a SIP extension has DND on oroff

Vieri rentorbuy at yahoo.com
Thu Sep 13 10:37:34 CDT 2007


--- Steve Langstaff <steve.langstaff at citel.com> wrote:

> Sending the phone a SIP OPTIONS message *should* get
> you the response
> code that the phone would respond with if you sent
> it an INVITE - I
> don't know how to do that from AGI though.

Do you know another way?
I suppose it could be done by programming sockets and
send SIP protocol commands but I would need to do it
*from* the server *to* the client (ie. the request
would originate on the * server).
Is there a simple example as to how one may implement
this, say, in PHP or Perl? (I can create sockets but
am unfamiliar with SIP) 

Also, can this problem be handled the other way
around? Can Asterisk be configured somehow so that
whenever someone tries to call a particular extension
and the latter yields a 'response 486 "Do Not
Disturb"' then the DND field in AstDB for that
extension is updated?
This way the custom AGI script would only need to
execute "database show dnd"...

I need this particularly for queues that have the
strict option for joining and leaving.
In this situation a custom cron script adds and
removes members dynamically from the queues. The
problem I found is that "strict" behavior works "as
expected" when the agents, even if added via
AddQueueMember, are logged off or have their softphone
turned off but "fails" if they activate DND (either by
pressing the softphone DND button or dialing *78).
So a "solution" I am thinking of implementing is to
change this custom cron script and make it "detect" if
certain SIP extensions have DND on or not (either with
"database show dnd" or any other reliable method). If
it detects an activated DND then it will execute a
RemoveQueueMember(queuenum, sipnum). If it detects
that DND is off again then it will run an
AddQueueMember(queuenum, sipnum).

Help appreciated ;-)

> > -----Original Message-----
> > From: asterisk-users-bounces at lists.digium.com 
> > [mailto:asterisk-users-bounces at lists.digium.com]
> On Behalf Of Vieri
> > Sent: 13 September 2007 14:30
> > To: asterisk-users at lists.digium.com
> > Subject: [asterisk-users] how to determine if a
> SIP extension 
> > has DND on oroff
> > 
> > I would like to determine through an AGI script if
> a specific 
> > SIP extension has DND on or off.
> > 
> > I know that if the SIP client dialed *78 or *79 it
> is usually 
> > enough to just do a:
> > 
> > database show dnd
> > 
> > to fetch the DND status from the database.
> > 
> > However, not all clients dial *78 or *79 (or
> whichever 
> > feature code is defined for DND).
> > 
> > Some softphones such as SJPhone have a DND button.
> > When pressed and someone tries to Dial() that
> extension, the 
> > Asterisk CLI shows something like this:
> > 
> >     -- Called SIP/4053
> >     -- Got SIP response 486 "Do Not Disturb" back
> from
> > 10.215.144.48
> >     -- SIP/4053-08311988 is busy
> > 
> > So how could I get the "response code" *without*
> actually 
> > dialing from within an AGI script? (I don't want
> to establish 
> > a call, just want to see if the SIP client replies
> with a DND 
> > response code) Like a "ping" of some sort...
> > 
> > Vieri



       
____________________________________________________________________________________
Boardwalk for $500? In 2007? Ha! Play Monopoly Here and Now (it's updated for today's economy) at Yahoo! Games.
http://get.games.yahoo.com/proddesc?gamekey=monopolyherenow  



More information about the asterisk-users mailing list