Add PJSIP_HEADER function for manipulation of SIP headers in the PJSIP stack
authorMatthew Jordan <mjordan@digium.com>
Tue, 8 Oct 2013 22:59:32 +0000 (22:59 +0000)
committerMatthew Jordan <mjordan@digium.com>
Tue, 8 Oct 2013 22:59:32 +0000 (22:59 +0000)
commitb36ef0b412165500f8a14d2f1e29c676a72402af
treef56d6415e5912c95587331678a80585846354abc
parent8021958099dae267d8752a27de9be39b3df21ef0
Add PJSIP_HEADER function for manipulation of SIP headers in the PJSIP stack

This patch adds support to the PJSIP stack in Asterisk for SIP header
manipulation. Note that this is analagous to SIPAddHeader/SIPRemoveHeader.

For PJSIP_HEADER, an incoming supplemental session callback is registered that
takes the pjsip_hdrs from the incoming session and stores them in a linked
list in the session datastore.  Calls to PJSIP_HEADER traverse over the list
and return the nth matching header where 'n' is the 'number' argument to the
function.

When adding a header, the first call creates a datastore and linked list and
adds the datastore to the session.  The header is then created as a pjsip_hdr
and added to the list.  An outgoing supplemental session callback then
traverses the list and adds the headers to the outgoing pjsip_msg.

When removing a header, the list created with PJSIP_HEADER(add,...) is
traversed and all matching entries are removed.

(closes issue ASTERISK-22498)
Reported by: George Joseph
patch:
  res_pjsip_header_funcs_v1.patch uploaded by george.joseph (License 6322)
........

Merged revisions 400771 from http://svn.asterisk.org/svn/asterisk/branches/12

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@400772 65c4cc65-6c06-0410-ace0-fbb531ad65f3
res/res_pjsip_header_funcs.c [new file with mode: 0644]