[Home]

Summary:ASTERISK-10604: Devstate does not seem to work with SIP phones
Reporter:shmattie (shmattie)Labels:
Date Opened:2007-10-23 15:22:59Date Closed:2011-06-07 14:08:02
Priority:MinorRegression?No
Status:Closed/CompleteComponents:Functions/func_devstate
Versions:Frequency of
Occurrence
Related
Issues:
Environment:Attachments:
Description:I have been playing around with the patch for devstate in Asterisk 1.4 and it works as expected for all my iax soft phones.  However it does not seem to work  of my SIP soft and hard phones.  I tested it with Asterisk 1.4.13.
Comments:By: Jared Smith (jsmith) 2007-10-23 15:41:05

If I understand correctly, you must set call limits in sip.conf for each device that you want to track the device state on.  You could try setting it to 99 and see if that helps.  If that doesn't help, please provide more information on how your devices are setup in sip.conf, what you're trying to do, etc.

By: shmattie (shmattie) 2007-10-23 16:00:11

My goal is to know if a phone is currently in use.  I don't want to send incoming calls to a phone that is already in use.  It was my understanding that devstate would be able to tell me if a device is in use.  The function works fine for IAX endpoints.  This is why I believed it was a bug in how it handles SIP.

I have read about using limits on an entry in the sip.conf however I don't have any on my IAX entries and it does work for them.

Here is an example from an endpoint of my sip.conf.
[200]
type=friend
host=dynamic
username=200
secret=1111
dtmfmode=rfc2833 ; Choices are inband, rfc2833, or info
mailbox=200@default ; Mailbox for message waiting indicator
context=default
callerid="John Smith" <200>
nat=never

By: Joshua C. Colp (jcolp) 2007-10-25 08:13:58

Device state in SIP is *much* different than IAX. IAX lets the core determine whether it is in use or not based on whether a channel is up or not. SIP keeps track internally of all of that information and requires call limits to be set to accurately return the proper state.

Once you add a call-limit (even setting a huge one will work) SIP device state will work fine.