[asterisk-bugs] [JIRA] (ASTERISK-13145) [patch] Presence subscription on Cisco SIP phone needs special Cisco-styled XML

Gareth Palmer (JIRA) noreply at issues.asterisk.org
Mon Apr 1 23:26:05 CDT 2013


    [ https://issues.asterisk.org/jira/browse/ASTERISK-13145?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=204848#comment-204848 ] 

Gareth Palmer commented on ASTERISK-13145:
------------------------------------------

I have updated the patch, there are a large number of changes and new features so you should read this through at least twice.

Previously, the patch made Asterisk behave like CME, the new version makes it now behave like CUCM. New softkey and feature policy definitions have been added as well.

*Hunt Group Login*
Support for the Hunt Group Login feature key. Can be controlled via the CLI similar to DND, eg:

{code:title=asterisk*CLI>}
sip huntgroup {on|off} <peer>
{code}
Or in the dial plan:
{code:title=extensions.conf}
exten => 0451,1,Set(SIPPEER(<peer>,huntgroup)={yes|no})
{code}

*Off Hook Notification*
Phones now notify Asterisk when they are taken off-hook and will show as InUse to watchers. No additional configuration required for this.

*Call-Info Header*

Call-Info header is now always added when a Remote-Party-ID header is added so that call-history entries appear correctly in 896x and 99x1 series.

*Unsolicited Notify for BLF*
Phones operating in CUCM mode do not SUBSCRIBE to hints so a subscription for each BLF line keydefined in SEPMAC.cnf.xml has to be added to the peer's sip.conf entry. An optional context can be provided otherwise it uses the peer's subscribecontext or context.

{code:title=sip.conf}
subscribe=exten1[@context]
subscribe=exten2[@context]
subscribe=exten3[@context]
etc...
{code}

*Ad-hoc N-way Conference*

Conference bridging is now done in Asterisk allowing conferencing of more than 3 participants. The conference will automatically end when there is only 1 participant left. Additional conference management features listed below.

*Conference List / Conference Details*

Soft-key that displays a list of the current participants in the conference from newest to oldest. Participants can be removed using the {{Remove}} soft-key and muted or unmuted using the {{Mute}} soft-key.

The icons next to the participants name have the following meaning:

*Checked Box* \- Participant is not muted.
*Unchecked Box* \- Participant has been muted.
*Speaker* \- Participant is talking.

Note, Remote-Party-ID updates have be enabled and working to use the feature.

*Remove Last Participant* (79xx series)

Removes the last participant added to the conference, removes 2nd-to-last etc. if pressed again.. 

*Multi-Administrator Conference*

When enabled, participants that have {{cisco_usecallmanager=yes}} and that also have {{cisco_multiadmin_conference=yes}} will be made conference administrators as well. This will allow them to add participants to the conference and remove/mute them via Conference List/Details as well.

{code:title=sip.conf}
cisco_multiadmin_conference={yes|no}
{code}

*Keep Conference*

If disabled, the remaining conference participants will be automatically hung up when there are no more administrators in the conference. Otherwise the conference will be kept alive.

{code:title=sip.conf}
cisco_keep_conference={yes|no}
{code}

*Park* (79xx, 894x and 69xx series)

Calls are sent to the "{{park}}" extension, depending on how you have configured call-parking you could just set the {{parkext}} to park:

{code:title=features.conf}
parkext => park
{code}

Otherwise it can be specified in the dial-plan:

{code:title=extensions.conf}
exten => park,1,Park
{code}

Unlike un-patched versions of asterisk, the "{{park}}" extension will expand variables and parse options when called via the internal API.

The timeout options is now also specified in seconds like it is in {{features.conf}} rather than milliseconds.

Parking-lot names don't need to be prefixed with parkinglot_ either, they just need to have {{parkext}} and {{parkpos}}.

I loathe the parking API.

*Park Monitor* (896x, 99x1 series)

Configured as above but with the option to send a reminder after a number of seconds (rings once and the LED turns from green to orange).

{code:title=features.conf}
remindertime => <seconds>
{code}

Reminder time can be specified along with the timeout option, example below is park for 60 seconds and send a reminder after 50 seconds.

{code:title=extensions.conf}
exten => park,1,Park(60/50)
{code}

*Files*

{{gareth-13.0.1.patch}} - The patch itself.
{{gareth-softkeys.xml}} - New soft-key definitions for Conference, Park etc.
{{gareth-featurepolicy.xml}} - New features enabled.

                
> [patch] Presence subscription on Cisco SIP phone needs special Cisco-styled XML
> -------------------------------------------------------------------------------
>
>                 Key: ASTERISK-13145
>                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-13145
>             Project: Asterisk
>          Issue Type: New Feature
>          Components: Channels/chan_sip/NewFeature
>            Reporter: David McNett
>         Attachments: 01-btias.patch, 02-media-attrib-sdp.patch, 03-media-attrib-sdp-backport.patch, 04-imageattr.patch, 7965.xml, 8001 to 8003 and hangup.pcap, 8001 to 8003 and pickup then talk then hangup.pcap, asterisk-1.8.7.0-chan_sip.patch, backtrace.txt, Capture - CSO Presence - Lift and Replace Handset.pcap, Capture - CSO Presence - Ring between 2 monitored extensions.pcap, chan_sip.c_available_on-the-phone.patch, chan_sip.c_blf_available_on-the-phone.patch, chan_sip.c.patch, cisco-blf-asterisk.1.6.0.26.patch, cisco-blf-asterisk.1.6.2.13.patch, cisco-blf-asterisk.1.8.0.patch, gareth-10.6.0.patch, gareth-11.2.1-dndbusy.patch, gareth-11.2.1.patch, gareth-11.3.0.patch, gareth-1.8.14.0.patch, gareth-featurepolicy.xml, gareth-mk-1.8.13.0.patch, gareth-softkeys.xml, gareth-softkeys.xml, memleak_astdb.patch, messages-1, Poly_reboot.log, second-sip-trace-7941-9-1-1SR1.txt, sip-trace-7941-9-1-1SR1.txt, trace2.txt
>
>
> Cisco phones appear to be unable to parse the existing PIDF XML being generated by Asterisk for presence notification.  I've attached a patch which produces well-formed (but incomplete) XML which will satisfy a Cisco phone.  The patch as supplied will successfully render a "busy" subscription, but does not send a subsequent "available" notification, so presence detection only half works currently.
> I suspect the next step might be to watch some CallManager SIP traffic to identify precisely what XML tags the phone is expecting in order to properly parse an available subscription, but I'm not in a position to do that.  I'll continue to work with this, though, and perhaps may be able to stumble upon the precise data the Cisco phone is looking for.
> ****** ADDITIONAL INFORMATION ******
> I believe that this requires the Cisco phones be configured to use SIP TCP when connecting to Asterisk.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.asterisk.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira



More information about the asterisk-bugs mailing list