Poly Phones have multiple ways to interact with different SIP Platforms.
Both UC software and PVOS can only use this with one provider aka you cannot have a subset of lines monitored on one server and another set on another server.
The Guide below illustrates how to use the attendantResourceList functionality to create a Busy Lamp Field (BLF) with Asterisk.
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 Poly 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.
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!):
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 Poly 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 ...
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:
An Incoming Call with details is presented like this:
on the VVX after a few rings the screen returns to this:
or
<normal attendant.behaviors.display.spontaneousCallAppearances.normal="0"/>
The above actually stops the phone pop up and simply displays below view.
The Busy State of a monitored Phone is presented like this:
Pressing the relevant monitored Line will show the call details in a scrolling window:
An additional 2nd call to a monitored extension is displayed via a green flashing LED (LED actually flashes green):
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
Notify (alerting)
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)
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 / hanging up)
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
If official support is required please check how to phone or open a case here
----------------Resource List Subscriptions (RLS) RFC4662
Since UC Software 5.4.5 or later Polycom partially supports the Asterisk RLS
extensions.conf
pjsip.conf
Polycom Configuration:
<asterisk attendant.uri="sales@10.252.149.247" />
Initial SUBSCRIBE
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:
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>
If official support is required please check how to phone or open a case here
----------------Using Static BLF / Busy Lamp Field with a Poly VVX x50 Obi Edition or Edge B phone
Poly VVX x50 Obi Edition:
Poly Edge B:
The basics of configuring a BLF: IP Phone > Line Keys (or Left Line Keys), under the desired Key <N>
The BLF line key label can also be customized: IP Phone > Line Key Customization, under Busy Lamp Field
For example, the following line key customization is configured, specifically TextLine1InCall = $name (Active):
When the monitored extension is on the phone, the phone will display the line key customization text, e.g. John Smith (Active):
BLF State and Colors
Troubleshooting:
Unlike the UC Software, most Obi phones do not have the ability to download logs so a >Syslog< server is required to enable the logging.
Navigate to System Management > Device Admin > Syslog and enter the details for a Syslog server
Then within Voice Services > SPx > Debug Options, the logging per service provider can be set to different levels.
A Syslog server will display the relevant SIP messages
NOTIFY sip:3034@10.252.149.62:5060 SIP/2.0
Via: SIP/2.0/UDP 172.21.177.17:5060;branch=z9hG4bK30304e23;rport
Max-Forwards: 70
From: <sip:3036@172.21.177.17>;tag=as67b470ae
To: <sip:3034@172.21.177.17>;tag=SP1ffb904f16c36fb52
Contact: <sip:3036@172.21.177.17:5060>
Call-ID: ac0652ddd1c999ef@10.252.149.62
CSeq: 115 NOTIFY
User-Agent: Steffens Asterisk 11.21.2
Subscription-State: active
Event: dialog
Content-Type: application/dialog-info+xml
Content-Length: 207
<?xml version="1.0"?>
<dialog-info xmlns="urn:ietf:params:xml:ns:dialog-info" version="13" state="full" entity="sip:3036@172.21.177.17">
<dialog id="3036">
<state>terminated</state>
</dialog>
</dialog-info>
<7> sendto ac15b111:5060(327)
<7> SIP/2.0 200 OK
Call-ID: ac0652ddd1c999ef@10.252.149.62
CSeq: 115 NOTIFY
Content-Length: 0
From: <sip:3036@172.21.177.17>;tag=as67b470ae
To: <sip:3034@172.21.177.17>;tag=SP1ffb904f16c36fb52
Via: SIP/2.0/UDP 172.21.177.17:5060;branch=z9hG4bK30304e23;received=172.21.177.17;rport=5060
Server: Polycom/VVX350-6.4.4.10001
Wireshark can also be used as explained > here <=
If official support is required please check how to phone or open a case here
----------------