Table of Contents
List of Examples
sj_serialize
usagesj_serialize
outputTable of Contents
This module serializes SIP message attributes into a JSON document.
It can facilitate getting the SIP attributes in a structure inside one of the embedded interpreters (e.g., KEMI interpreters, Lua can parse JSON in an internal hash table).
Do the serialization of SIP message attributes into a JSON document.
When there is a match, it uses the corresponding pseudo-variable name for JSON attribute (e.g., 'ru' is the R-URI attribute name).
Meaning of the parameters:
opt - list of optional groups of attributes to be serialized. Each group of attributes has a corresponding character. These are:
0 - (zero) default attributes to be serialized. They are added even if '0' is not provided as parameter, however, because 'opt' parameter cannot be empty, '0' can be given when only default attributes are wanted.
B - (uppercase B) SIP message body
c - (lowercase c) CSeq attributes
t - (lowercase t) To header attributes
ovar - name of the output pseduo-variable
This function can be used from ANY_ROUTE.
The content of the output variable is a JSON. Next are some samples. Note that the content might change with future development and this example become outdated, simply print the document when you start testing your config and match the name of the attribute with the name of pseudo-variables to understand what values can be there. Unlike pseudo-variables, the $null values might converted to empty strings.
Example 1.2. sj_serialize
output
... # the content of $var(json) after sj_serialize("0B", "$var(json)") # - the content is compacted, next it has been pretty-formatted for better viewing ... { "mt":2, "rm":"OPTIONS", "pr":"udp", "si":"127.0.0.1", "sp":36747, "Ri":"127.0.0.1", "Rp":5060, "ru":"sip:alice@127.0.0.1", "rU":"alice", "rd":"127.0.0.1", "rp":0, "fU":"sipsak", "fd":"172.17.0.2", "ua":"sipsak 0.9.7pre", "ci":"482215126@172.17.0.2", "rb":"" ... } ... # the sip message sent to Kamailio: ... OPTIONS sip:alice@127.0.0.1 SIP/2.0 Via: SIP/2.0/UDP 127.0.0.1:65502;branch=z9hG4bK.79e78613;rport;alias From: sip:sipsak@172.17.0.2;tag=74806173 To: sip:alice@127.0.0.1 Call-ID: 482215126@172.17.0.2 CSeq: 1 OPTIONS Contact: sip:sipsak@127.0.0.1:65502 Content-Length: 0 Max-Forwards: 70 User-Agent: sipsak 0.9.7pre Accept: text/plain ...