Asterisk Presence for Cisco 79x1 Phones

Newer Cisco IP Phones such as the 7941, 7961, and 7971 now support BLF or presence information for speed dial numbers. Unfortunately, configuring the phones for this to work is not easy, nor straightforward.

To get BLF working on the Cisco phones:
  • The phone must be configured for a Call Manager server, which is how you make the phones connect using SIP/TCP instead of SIP/UDP:
This means setting your SIPDefault.cnf as so:
 
         call_manager1_addr: "server.address.here"


For phones which use the newer .cnf.xml style configuration, you do it by putting the Asterisk server in the callManagerGroup block:

         <callManager>
            <ports>
               <ethernetPhonePort>2000</ethernetPhonePort>
               <sipPort>5060</sipPort>
               <securedSipPort>5061</securedSipPort>
            </ports>
            <processNodeName>server.address.here</processNodeName>
         </callManager>

And then defining the lines with the literal string "USECALLMANAGER" as the proxy address:

      <sipLines>
         <line button="1">
            <featureID>9</featureID>
            <featureLabel>Label</featureLabel>
            <proxy>USECALLMANAGER</proxy>
            <port>5060</port>


You'll also need to configure the phone to have speed dial entries bound to lines, like this (.cnf style):

         speed_line2: "50"
         speed_label2: "Employee A"

or this (.cnf.xml style):

         <line button="2">
           <featureID>21</featureID>
           <featureLabel>Employee A</featureLabel>
           <speedDialNumber>761</speedDialNumber>
         </line>


If you wish the BLF to show the ringing state as well as the inuse state,


         <line button="2">
           <featureID>21</featureID>
           <featureLabel>Employee A</featureLabel>
           <speedDialNumber>761</speedDialNumber>
           <featureOptionMask>1</featureOptionMask>
         </line>



  • You must enable tcpenable=yes in the [general] section sip.conf (Asterisk 1.6 or newer)
  • You must enable "transport=tcp" for the sip peer in sip.conf
    • Do not under any circumstances enable qualify= for a sip tcp peer
  • The server must respond to the SUBSCRIBE request with a content type of application/pidf+xml even though the SUBSCRIBE request lists application/cpim-pidf+xml.

This will require patching Asterisk. The current best-working patch is being tracked at Digium bug 13996. Current support is preliminary and needs work.

See also

Newer Cisco IP Phones such as the 7941, 7961, and 7971 now support BLF or presence information for speed dial numbers. Unfortunately, configuring the phones for this to work is not easy, nor straightforward.

To get BLF working on the Cisco phones:
  • The phone must be configured for a Call Manager server, which is how you make the phones connect using SIP/TCP instead of SIP/UDP:
This means setting your SIPDefault.cnf as so:
 
         call_manager1_addr: "server.address.here"


For phones which use the newer .cnf.xml style configuration, you do it by putting the Asterisk server in the callManagerGroup block:

         <callManager>
            <ports>
               <ethernetPhonePort>2000</ethernetPhonePort>
               <sipPort>5060</sipPort>
               <securedSipPort>5061</securedSipPort>
            </ports>
            <processNodeName>server.address.here</processNodeName>
         </callManager>

And then defining the lines with the literal string "USECALLMANAGER" as the proxy address:

      <sipLines>
         <line button="1">
            <featureID>9</featureID>
            <featureLabel>Label</featureLabel>
            <proxy>USECALLMANAGER</proxy>
            <port>5060</port>


You'll also need to configure the phone to have speed dial entries bound to lines, like this (.cnf style):

         speed_line2: "50"
         speed_label2: "Employee A"

or this (.cnf.xml style):

         <line button="2">
           <featureID>21</featureID>
           <featureLabel>Employee A</featureLabel>
           <speedDialNumber>761</speedDialNumber>
         </line>


If you wish the BLF to show the ringing state as well as the inuse state,


         <line button="2">
           <featureID>21</featureID>
           <featureLabel>Employee A</featureLabel>
           <speedDialNumber>761</speedDialNumber>
           <featureOptionMask>1</featureOptionMask>
         </line>



  • You must enable tcpenable=yes in the [general] section sip.conf (Asterisk 1.6 or newer)
  • You must enable "transport=tcp" for the sip peer in sip.conf
    • Do not under any circumstances enable qualify= for a sip tcp peer
  • The server must respond to the SUBSCRIBE request with a content type of application/pidf+xml even though the SUBSCRIBE request lists application/cpim-pidf+xml.

This will require patching Asterisk. The current best-working patch is being tracked at Digium bug 13996. Current support is preliminary and needs work.

See also

Created by: daroz, Last modification: Sat 12 of May, 2012 (20:43 UTC) by admin
Please update this page with new information, just login and click on the "Edit" or "Discussion" tab. Get a free login here: Register Thanks! - Find us on Google+