Howto:Busy lamp field (partner keys) with SIP phones

From innovaphone wiki
Jump to navigation Jump to search

Applies To

This information applies to

  • innovaphone PBX, v6
  • SIP phones supporting "Dialog Package" according to RFC-4235


Introduction

Partner keys are primarily used to monitor the call state of an associated partner. Usually partner keys fulfill the following functions:

  • monitoring partner: Indicating different call-related states: Idle, Alerting, Busy.
  • speed dial: Pressing the partner key while the partner is in idle state will initiate a call to the partner.
  • call pickup: Pressing the partner key while the partner is in alerting state will initiate a call pickup of the alerting call.

More Information

System Requirements

Configuration

In order make partner keys working, the PBX must notify the device about current state of ongoing calls.
To achieve that, "Group Indications" must be activated on the "watching" user for the "watched group":
Pbx user group indications.gif

The NOTIFY request is used to carry an XML formatted dialog info.
Endpoints can, but need not to subscribe for the "Dialog Event Package" (RFC-4235).
If "Group Indications" are activated on a PBX user, but the user's endpoint has not subscribed for the dialog event package, the user's endpoint will receive unsolicited NOTIFYs anyway.

Known Problems

---

Example

The watched endpoint (207) receives a call from 211.
The watcher gets a NOTIFY request with a dialog info about the call in "early" state:

NOTIFY sip:snom@172.16.16.34:1415;line=ojn9itpa SIP/2.0
Via: SIP/2.0/UDP 172.16.16.180:5060;branch=z9hG4bK-311728BD;rport
From: <sip:207@172.16.16.180;user=phone>;tag=2870350033
To: <sip:snom@172.16.16.180>;tag=bl4qd8azu6
Call-ID: 0ce2cb4794c2-9b374j1ddupd@snomSoft-000413FFFFFF
CSeq: 18 NOTIFY
Contact: <sip:207@172.16.16.180;user=phone>
Content-Length: 343
Content-Type: application/dialog-info+xml
Max-Forwards: 70
Event: dialog
Subscription-State: active

<?xml version="1.0"?>
<dialog-info xmlns="urn:ietf:params:xml:ns:dialog-info" state="full" version="9">
    <dialog id="1" direction="initiator" call-id="e1b50917e909d311824d0090330200d6">
        <state>early</state>
        <local>
            <identity>sip:207@172.16.16.180</identity>
        </local>
        <remote>
            <identity>sip:211@172.16.16.180</identity>
        </remote>
    </dialog>
</dialog-info>


SIP/2.0 200 Ok
Via: SIP/2.0/UDP 172.16.16.180:5060;branch=z9hG4bK-311728BD;rport=5060
From: <sip:207@172.16.16.180;user=phone>;tag=2870350033
To: <sip:snom@172.16.16.180>;tag=bl4qd8azu6
Call-ID: 0ce2cb4794c2-9b374j1ddupd@snomSoft-000413FFFFFF
CSeq: 18 NOTIFY
Content-Length: 0

While in state "early" the watcher has the chance to pickup this "early" call.
After the call has been accepted by the watched endpoint (207), the former dialog info is cleared and a new dialog info is send to the watcher about the call in state "proceeding":

NOTIFY sip:snom@172.16.16.34:1415;line=ojn9itpa SIP/2.0
Via: SIP/2.0/UDP 172.16.16.180:5060;branch=z9hG4bK-311728BE;rport
From: <sip:207@172.16.16.180;user=phone>;tag=2870350033
To: <sip:snom@172.16.16.180>;tag=bl4qd8azu6
Call-ID: 0ce2cb4794c2-9b374j1ddupd@snomSoft-000413FFFFFF
CSeq: 19 NOTIFY
Contact: <sip:207@172.16.16.180;user=phone>
Content-Length: 349
Content-Type: application/dialog-info+xml
Max-Forwards: 70
Event: dialog
Subscription-State: active

<?xml version="1.0"?>
<dialog-info xmlns="urn:ietf:params:xml:ns:dialog-info" state="full" version="10">
    <dialog id="1" direction="initiator" call-id="e1b50917e909d311824d0090330200d6">
        <state>terminated</state>
        <local>
            <identity>sip:207@172.16.16.180</identity>
        </local>
        <remote>
            <identity>sip:211@172.16.16.180</identity>
        </remote>
    </dialog>
</dialog-info>


NOTIFY sip:snom@172.16.16.34:1415;line=ojn9itpa SIP/2.0
Via: SIP/2.0/UDP 172.16.16.180:5060;branch=z9hG4bK-311728BF;rport
From: <sip:207@172.16.16.180;user=phone>;tag=2870350033
To: <sip:snom@172.16.16.180>;tag=bl4qd8azu6
Call-ID: 0ce2cb4794c2-9b374j1ddupd@snomSoft-000413FFFFFF
CSeq: 20 NOTIFY
Contact: <sip:207@172.16.16.180;user=phone>
Content-Length: 349
Content-Type: application/dialog-info+xml
Max-Forwards: 70
Event: dialog
Subscription-State: active

<?xml version="1.0"?>
<dialog-info xmlns="urn:ietf:params:xml:ns:dialog-info" state="full" version="11">
    <dialog id="1" direction="initiator" call-id="e1b50917e909d311824d0090330200d6">
        <state>proceeding</state>
        <local>
            <identity>sip:207@172.16.16.180</identity>
        </local>
        <remote>
            <identity>sip:211@172.16.16.180</identity>
        </remote>
    </dialog>
</dialog-info>


SIP/2.0 200 Ok
Via: SIP/2.0/UDP 172.16.16.180:5060;branch=z9hG4bK-311728BE;rport=5060
From: <sip:207@172.16.16.180;user=phone>;tag=2870350033
To: <sip:snom@172.16.16.180>;tag=bl4qd8azu6
Call-ID: 0ce2cb4794c2-9b374j1ddupd@snomSoft-000413FFFFFF
CSeq: 19 NOTIFY
Content-Length: 0


SIP/2.0 200 Ok
Via: SIP/2.0/UDP 172.16.16.180:5060;branch=z9hG4bK-311728BF;rport=5060
From: <sip:207@172.16.16.180;user=phone>;tag=2870350033
To: <sip:snom@172.16.16.180>;tag=bl4qd8azu6
Call-ID: 0ce2cb4794c2-9b374j1ddupd@snomSoft-000413FFFFFF
CSeq: 20 NOTIFY
Content-Length: 0

After the call has been terminated, the dialog info is cleared:

NOTIFY sip:snom@172.16.16.34:1415;line=ojn9itpa SIP/2.0
Via: SIP/2.0/UDP 172.16.16.180:5060;branch=z9hG4bK-311728C1;rport
From: <sip:207@172.16.16.180;user=phone>;tag=2870350033
To: <sip:snom@172.16.16.180>;tag=bl4qd8azu6
Call-ID: 0ce2cb4794c2-9b374j1ddupd@snomSoft-000413FFFFFF
CSeq: 22 NOTIFY
Contact: <sip:207@172.16.16.180;user=phone>
Content-Length: 349
Content-Type: application/dialog-info+xml
Max-Forwards: 70
Event: dialog
Subscription-State: active

<?xml version="1.0"?>
<dialog-info xmlns="urn:ietf:params:xml:ns:dialog-info" state="full" version="12">
    <dialog id="1" direction="initiator" call-id="e1b50917e909d311824d0090330200d6">
        <state>terminated</state>
        <local>
            <identity>sip:207@172.16.16.180</identity>
        </local>
        <remote>
            <identity>sip:211@172.16.16.180</identity>
        </remote>
    </dialog>
</dialog-info>


SIP/2.0 200 Ok
Via: SIP/2.0/UDP 172.16.16.180:5060;branch=z9hG4bK-311728C1;rport=5060
From: <sip:207@172.16.16.180;user=phone>;tag=2870350033
To: <sip:snom@172.16.16.180>;tag=bl4qd8azu6
Call-ID: 0ce2cb4794c2-9b374j1ddupd@snomSoft-000413FFFFFF
CSeq: 22 NOTIFY
Content-Length: 0