cancel
Showing results for 
Search instead for 
Did you mean: 

[FAQ] Busy Lamp Field for SoundPoint IP supported Phones on a Digium Asterisk SIP Server.

Polycom Employee & Community Manager

[FAQ] Busy Lamp Field for SoundPoint IP supported Phones on a Digium Asterisk SIP Server.

Jan 23, 2015 Update

 

Polycom Phones have multiple ways to interact with different SIP Platforms.

 

The Guide below ilustrates how to use the attendantResourceList functionality to create a Busy Lamp Field (BLF) with Asterisk.

 

  • The phone will send Subscribe to the contact(s) in question.
  • The server will send a Notify(s) containing the status of the contact(s) 

 

The Phone will use the dialog-info+xml method.

 

Another method with limited functionality could also be the Buddy Watch facility described in this guide => here <=.

 

NOTE: Please be aware that this guide is a proof of concept and requires your Asterisk Digium SIP server to support the functionality. This has been tested against Asterisk 1.6.2.20 and a Polycom SoundPoint IP 650 running UCS 3.3.2. Please consult Digium Support for any queries regarding Asterisk.

 

The Parameter used on the supported Phones to enable monitoring of the Extension Status is within the  <resourceList/>

The attendant.resourceList.x.address, x is the maximum monitored user number.

 

  • For IP 450: x=1-2; IP 550, IP 560: X=1-3; IP 650, IP 670: x=1-47

  • For VVX300,301,310,311,400,401,410,411,500,501,600 and 601 the maximum number of BLF entries is 50.

 

An configuration example for two monitored Extensions may look like this:

 

<attendant attendant.resourceList.1.address="sip:3013@10.252.75.119" 
attendant.resourceList.1.label="3013"
attendant.resourceList.2.address="sip:3079@10.252.75.119"
attendant.resourceList.2.label="3079" />

 

Or Utilities > Line Key Configuration (Depending on the phone model supporting this!):

 

BLFViaWebIF.PNG

 

In order to enable a directed call pickup you may also want to add:

 

<call call.directedCallPickupMethod="legacy" call.directedCallPickupString="*97" />

 

The string used above must match the Digium Asterisk features.conf entry for pickupexten:

 

...
;xfersound = beep ; to indicate an attended transfer is complete
;xferfailsound = beeperr ; to indicate a failed transfer
pickupexten = *97 ; Configure the pickup extension. (default is *8)
;pickupsound = beep ; to indicate a successful pickup (default: no sound)
;pickupfailsound = beeperr ; to indicate that the pickup failed (default: no sound)
...

 

The below notifycid=yes causes Asterisk to add a "target uri = callID" to the XML of the SIP NOTIFY. Without this target uri the Polycom phone will not do a directed pickup.

 

Any other compatible SIP server also needs to utilize this functionality within their SIP NOTIFY.

 

The Digium Asterisk sip.conf should contain a similar entry to this example:

 

...
notifycid=yes
...
 
[3011]; Extension 3011
domain=0.0.0.0
user=3011
type=friend
secret=3011
mailbox=3011
nat=yes
host=dynamic
callerid="Polycom Demo" <3011> Name being Displayed on the Far End
context=polycom
allowsubscribe=yes
call-limit=10 
callgroup=1
pickupgroup=1
 
 
[3012]; Extension 3012
domain=0.0.0.0
user=3012
type=friend
secret=3012
mailbox=3012
nat=yes
host=dynamic
callerid="Polycom Demo" <3012> Name being Displayed on the Far End
context=polycom
allowsubscribe=yes
call-limit=10
callgroup=1
pickupgroup=1
 
 
[3013]; Extension 3013
domain=0.0.0.0
user=3013
type=friend
secret=3013
mailbox=3013
nat=yes
host=dynamic
callerid="Polycom Demo" <3013> Name being Displayed on the Far End
context=polycom
allowsubscribe=yes
call-limit=10 
callgroup=1
pickupgroup=1

...

 

 

  • The context must match your context containing the extensions
  • The allowsubscribe allows other Phones to subscribe to the watched Phones status
  • The call-limit is also needed to monitor the status of the Phone

 

NOTE: Please consult an Digium Asterisk Specialist regarding security issues setting up Extensions on a SIP Server.

 

The Digium Asterisk extensions.conf needs to have the HINT feature enabled.

 

For a block of extensions this could look like this: 

 

…
;internal 3XXX Extension Range
 
exten => _3XXX,hint,SIP/${EXTEN}
exten => _3XXX,1,SIPAddHeader(Alert-Info: ${INTERNAL_HEADER})
exten => _3XXX,2,NoOp(SIP/mypeer ${CALLERID(num)} ext ${EXTEN})
exten => _3XXX,n,GotoIf($["${CALLERID(num)}" = "${EXTEN}"]?vm:vm2)
exten => _3XXX,n(vm),VoicemailMain(s${EXTEN})
exten => _3XXX,n(vm2),Dial(SIP/${EXTEN},25,Tt) exten => _3XXX,n,VoiceMail(${EXTEN})
…

 

In addition the Digium Asterisk extensions.conf needs to have the above defined Pickup Code added to match also the length of the exentsions used:

 

exten => _*97.,1,SET(GLOBAL(PICKUPMARK)=${EXTEN:4})
exten => _*97.,n,Pickup(${EXTEN:4}@PICKUPMARK)

 

The above utilizes the standard value for the call.directedCallPickupString (*97) and would remove 4 digits after the *97 code.

 

MONITORING PHONES

 

Once the Phone has booted the idle screen shows the monitored Extensions:

 

AsteriskPolycom_BLF_01.png VVX500_BLF_01.png

 

An Incoming Call with details is presented like this:

 

SPIP_Alerting_BLF_01.PNGVVX_Alerting_BLF_01.PNG 

or

<normal attendant.behaviors.display.spontaneousCallAppearances.normal="0"/>

The above actually stops the phone pop up and simply displays below view.

 

on the VVX after a few rings the screen returns to this:

 

VVX_Alerting_BLF_02.PNG

 

The Busy State of a monitored Phone is presented like this:

 

AsteriskPolycom_BLF_03.png VVX500_BLF_04.png

 

Pressing the relevant monitored Line will show the call details in a scrolling window:

 

BusyBLF_03.PNG 

 

An additional 2nd call to a monitored extension is displayed via a green flashing LED (LED actually flashes green):

 

BusyBLF_02.PNG

 

 

 

You can check your configuration using the Asterisk commands sip show subscriptions and core show hints, as shown below.

 

 sip show subscriptions

Peer             User             Call ID          Extension        Last state     Type            Mailbox    Expiry
10.252.75.172    3012             79d64c55-265a0f  3013@local       Idle           dialog-info+xml <none>     000145
10.252.75.172    3012             b7ca761c-75e02a  3079@local       Idle           dialog-info+xml <none>     000145
2 active SIP subscriptions

 

 

core show hints

    -= Registered Asterisk Dial Plan Hints =-

                  _3XXX@local               : SIP/${EXTEN}          State:Idle            Watchers  0
                   3079@local               : SIP/3079              State:Idle            Watchers  1
                   3013@local               : SIP/3013              State:Idle            Watchers  1
----------------
- 3 hints registered

 

Wireshark trace:

 

Subscribe

 

BLF_01.PNG

 

Notify (alerting)

 

AsteriskBLF_alerting.JPG

 

SIP at Debug:

 

0123142658|sip  |0|00|<<<Data Received UDP
0123142658|sip  |0|00|    NOTIFY sip:3080@10.252.149.103 SIP/2.0
0123142658|sip  |0|00|    Via: SIP/2.0/UDP 10.252.122.122:5060;branch=z9hG4bK4ecf9148;rport
0123142658|sip  |0|00|    Max-Forwards: 70
0123142658|sip  |0|00|    From: <sip:3081@10.252.122.122>;tag=as5c89ccfe
0123142658|sip  |0|00|    To: "3080" <sip:3080@10.252.122.122>;tag=BC6E7859-A9523F8E
0123142658|sip  |0|00|    Contact: <sip:3081@10.252.122.122:5060>
0123142658|sip  |0|00|    Call-ID: f65d4915-1f8ff162-d38cd401@10.252.149.103
0123142658|sip  |0|00|    CSeq: 337 NOTIFY
0123142658|sip  |0|00|    User-Agent: Steffens Asterisk 10.0.0
0123142658|sip  |0|00|    Subscription-State: active
0123142658|sip  |0|00|    Event: dialog
0123142658|sip  |0|00|    Content-Type: application/dialog-info+xml
0123142658|sip  |0|00|    Content-Length: 583
0123142658|sip  |0|00|
0123142658|sip  |0|00|    <?xml version="1.0"?><dialog-info xmlns="urn:ietf:params:xml:ns:dialog-info" version="235" state="full" entity="sip:3081@10.252.122.122"><dialog id="3081" call-id="pickup-f65d4915-1f8ff162-d38cd401@10.252.149.103" local-tag="BC6E7859-A9523F8E" remote-tag="as5c89ccfe" direction="recipient">
<remote>
<identity display="Spectralink 8030 00907a07c46c">sip:3001@10.252.122.122</identity>
<target uri="sip:3001@10.252.122.122"/>
</remote>
<local>
<identity>sip:3081@10.252.122.122</identity>
<target uri="sip:308
0123142658|sip  |0|00|    1@10.252.122.122"/>
</local>
<state>early</state>
</dialog>
</dialog-info>

 

 

Notify (Busy state / answered call)

 

AsteriskBLF_answered.JPG

 

SIP at Debug: 

 

0123142804|sip  |0|00|<<<Data Received UDP
0123142804|sip  |0|00|    NOTIFY sip:3080@10.252.149.103 SIP/2.0
0123142804|sip  |0|00|    Via: SIP/2.0/UDP 10.252.122.122:5060;branch=z9hG4bK789e4a71;rport
0123142804|sip  |0|00|    Max-Forwards: 70
0123142804|sip  |0|00|    From: <sip:3081@10.252.122.122>;tag=as5c89ccfe
0123142804|sip  |0|00|    To: "3080" <sip:3080@10.252.122.122>;tag=BC6E7859-A9523F8E
0123142804|sip  |0|00|    Contact: <sip:3081@10.252.122.122:5060>
0123142804|sip  |0|00|    Call-ID: f65d4915-1f8ff162-d38cd401@10.252.149.103
0123142804|sip  |0|00|    CSeq: 341 NOTIFY
0123142804|sip  |0|00|    User-Agent: Steffens Asterisk 10.0.0
0123142804|sip  |0|00|    Subscription-State: active
0123142804|sip  |0|00|    Event: dialog
0123142804|sip  |0|00|    Content-Type: application/dialog-info+xml
0123142804|sip  |0|00|    Content-Length: 205
0123142804|sip  |0|00|
0123142804|sip  |0|00|    <?xml version="1.0"?><dialog-info xmlns="urn:ietf:params:xml:ns:dialog-info" version="239" state="full" entity="sip:3081@10.252.122.122"><dialog id="3081"><state>confirmed</state>
</dialog>
</dialog-info>

 

 

Notify (clearing call / haning up)

 

AsteriskBLF_Cleared.JPG

 

 

SIP at Debug:

 

0123142917|sip  |0|00|<<<Data Received UDP
0123142917|sip  |0|00|    NOTIFY sip:3080@10.252.149.103 SIP/2.0
0123142917|sip  |0|00|    Via: SIP/2.0/UDP 10.252.122.122:5060;branch=z9hG4bK38447a44;rport
0123142917|sip  |0|00|    Max-Forwards: 70
0123142917|sip  |0|00|    From: <sip:3081@10.252.122.122>;tag=as5c89ccfe
0123142917|sip  |0|00|    To: "3080" <sip:3080@10.252.122.122>;tag=BC6E7859-A9523F8E
0123142917|sip  |0|00|    Contact: <sip:3081@10.252.122.122:5060>
0123142917|sip  |0|00|    Call-ID: f65d4915-1f8ff162-d38cd401@10.252.149.103
0123142917|sip  |0|00|    CSeq: 342 NOTIFY
0123142917|sip  |0|00|    User-Agent: Steffens Asterisk 10.0.0
0123142917|sip  |0|00|    Subscription-State: active
0123142917|sip  |0|00|    Event: dialog
0123142917|sip  |0|00|    Content-Type: application/dialog-info+xml
0123142917|sip  |0|00|    Content-Length: 206
0123142917|sip  |0|00|
0123142917|sip  |0|00|    <?xml version="1.0"?><dialog-info xmlns="urn:ietf:params:xml:ns:dialog-info" version="240" state="full" entity="sip:3081@10.252.122.122"><dialog id="3081"><state>terminated</state>
</dialog>
</dialog-info>

 

 

Call Pickup

 

AsteriskBLF_Pickup.JPG

Please be aware:

The purpose of these forums is to allow community members collaborate and help each other.
Questions posted here do not follow Polycom’s SLA guidelines.
If you require assistance from Polycom technical support, please open a
web service request or call us .

The above is necessary in order to track issue internally within Polycom.

You are welcome to post more questions or configuration or logs for other community members to look at but if your issue requires a fix via Polycom you must go via the official support structure.

Please ensure you always check the VoIP , Video Endpoint , Skype for Business , PSTN or RPM FAQ's

Please remember, if you see a post that helped you , and it answers your question, please mark it as an "Accept as Solution".

This forum reply or post is based upon my personal experience and does not reflect the opinion or view of my employer.
Polycom employee participation within this community is not mandatory and any post or FAQ article provided by myself is done either during my working hours or outside working hours, in my private time, and may be answered on weekends, bank holidays or personal holidays.
Message 1 of 2
1 REPLY
Polycom Employee & Community Manager

Re: [FAQ] Busy Lamp Field for SoundPoint IP supported Phones on a Digium Asterisk SIP Server.

Resource List Subscriptions (RLS) RFC4662

 

Since UC Software 5.4.5 or later Polycom supports the Asterisk RLS

 

extensions.conf

 

Asterisk_RLS_03.PNG

 

pjsip.conf

 

Asterisk_RLS_04.PNG

 

Polycom Configuration:

 

<asterisk attendant.uri="sales@10.252.149.247" />

 

Initial SUBSCRIBE

 

Asterisk_RLS_01.PNG

 

0919182624|sip  |0|00|    SUBSCRIBE sip:sales@10.252.149.247 SIP/2.0
0919182624|sip  |0|00|    Via: SIP/2.0/UDP 10.252.149.106;branch=z9hG4bK44199cd8D82FDCB5
0919182624|sip  |0|00|    From: "3030" <sip:3030@10.252.149.247>;tag=60F5E2C4-835810E1
0919182624|sip  |0|00|    To: <sip:sales@10.252.149.247>
0919182624|sip  |0|00|    CSeq: 1 SUBSCRIBE
0919182624|sip  |0|00|    Call-ID: 20b64582-36aaac3f-ce2655ec@10.252.149.106
0919182624|sip  |0|00|    Contact: <sip:3030@10.252.149.106>
0919182624|sip  |0|00|    Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, INFO, MESSAGE, SUBSCRIBE, NOTIFY, PRACK, UPDATE, REFER
0919182624|sip  |0|00|    Event: dialog
0919182624|sip  |0|00|    User-Agent: PolycomVVX-VVX_600-UA/5.4.5.5602
0919182624|sip  |0|00|    Accept-Language: en
0919182624|sip  |0|00|    Accept: application/dialog-info+xml,application/rlmi+xml,multipart/related
0919182624|sip  |0|00|    Supported: eventlist
0919182624|sip  |0|00|    Max-Forwards: 70
0919182624|sip  |0|00|    Expires: 3600
0919182624|sip  |0|00|    Content-Length: 0
0919182624|sip  |0|00|
0919182624|sip  |0|00|<<< End of data send

Ringing:

 

Asterisk_RLS_02.PNG

 

0919182624|sip  |0|00|    NOTIFY sip:3030@10.252.149.106 SIP/2.0
0919182624|sip  |0|00|    Via: SIP/2.0/UDP 10.252.149.247:5060;rport;branch=z9hG4bKPj2a0121ec-84fa-4c6c-a780-a1874f6ef39e
0919182624|sip  |0|00|    From: <sip:sales@10.252.149.247>;tag=b9c7d407-eefd-4945-b727-dd3759728dc7
0919182624|sip  |0|00|    To: "3030" <sip:3030@10.252.149.247>;tag=60F5E2C4-835810E1
0919182624|sip  |0|00|    Contact: <sip:10.252.149.247:5060>
0919182624|sip  |0|00|    Call-ID: 20b64582-36aaac3f-ce2655ec@10.252.149.106
0919182624|sip  |0|00|    CSeq: 5344 NOTIFY
0919182624|sip  |0|00|    Event: dialog
0919182624|sip  |0|00|    Subscription-State: active;expires=3600
0919182624|sip  |0|00|    Allow-Events: presence, dialog, message-summary, refer
0919182624|sip  |0|00|    Require: eventlist
0919182624|sip  |0|00|    Max-Forwards: 70
0919182624|sip  |0|00|    User-Agent: Asterisk PBX 13.11.2
0919182624|sip  |0|00|    Content-Type: multipart/related;type="application/rlmi+xml";boundary=xdycj
0919182624|sip  |0|00|    Content-Length:   792
0919182624|sip  |0|00|
0919182624|sip  |0|00|
0919182624|sip  |0|00|    --xdycj
0919182624|sip  |0|00|    Content-ID: <kffvz@10.252.149.247>
0919182624|sip  |0|00|    Content-Type: application/rlmi+xml
0919182624|sip  |0|00|    Content-Length:   323
0919182624|sip  |0|00|
0919182624|sip  |0|00|    <?xml version="1.0" encoding="UTF-8"?>
<list xmlns="urn:ietf:params:xml:ns:rlmi" uri="sip:sales@10.252.149.247:5060" version="0" fullState="true">
 <name>sales</name>
 <resource uri="sip:3314@10.252.149.247:5060">
  <name>3314</name>
  <instance id="zuibm" state="active" cid="ihlza@10.252.149.247" />
 </resource>
</list>

0919182624|sip  |0|00|    --xdycj
0919182624|sip  |0|00|    Content-ID: <ihlza@10.252.149.247>
0919182624|sip  |0|00|    Content-Type: application/dialog-info+xml
0919182624|sip  |0|00|    Content-Length:   233
0919182624|sip  |0|00|
0919182624|sip  |0|00|    <?xml version="1.0" encoding="UTF-8"?>
<dialog-info xmlns="urn:ietf:params:xml:ns:dialog-info" version="0" state="full" entity="sip:3314@10.252.149.247:5060">
 <dialog id="3314">
  <state>terminated</state>
 </dialog>
</dialog-info>

 

Please be aware:

The purpose of these forums is to allow community members collaborate and help each other.
Questions posted here do not follow Polycom’s SLA guidelines.
If you require assistance from Polycom technical support, please open a
web service request or call us .

The above is necessary in order to track issue internally within Polycom.

You are welcome to post more questions or configuration or logs for other community members to look at but if your issue requires a fix via Polycom you must go via the official support structure.

Please ensure you always check the VoIP , Video Endpoint , Skype for Business , PSTN or RPM FAQ's

Please remember, if you see a post that helped you , and it answers your question, please mark it as an "Accept as Solution".

This forum reply or post is based upon my personal experience and does not reflect the opinion or view of my employer.
Polycom employee participation within this community is not mandatory and any post or FAQ article provided by myself is done either during my working hours or outside working hours, in my private time, and may be answered on weekends, bank holidays or personal holidays.
Message 2 of 2