Parse SIP invite packet

Status
Not open for further replies.

mskenderian

New Member
Jun 16, 2022
4
0
1
39
Is there a way to parse headers from the sip invite.

Code:
INVITE sip:+1XXXXXXXXXX@XXX.XXX.XXX.XXX SIP/2.0
Via: SIP/2.0/UDP XXX.XXX.XXX.XXX:5060;branch=z9hG4bKcr33ea008g70i9rqb4j1.1
From: "WIRELESS CALLER" <sip:+1XXXXXXXXXX@XXX.XXX.XXX.XXX:5060>;tag=gK04471238
To: <sip:+1XXXXXXXXXX@XXX.XXX.XXX.XXX>
P-Asserted-Identity: "WIRELESS CALLER" <sip:+1XXXXXXXXXX;verstat=TN-Validation-Passed@XXX.XXX.XXX.XXX:5060>
P-Attestation-Indicator: A
P-Origination-ID: FFFFFFFF-FFFF-FFFF-FFFF-010100000000
P-Charge-Info: tel:1XXXXXXXXX;Rate=0.0000;Trk=SomeClient

trying to match P-Charge-Info -> Trk=
 

agree

Member
Aug 26, 2018
135
24
18
Ironically freeswitch doesn't provide any way to parse sip headers.

The header gets set as a channel variable sip_h_P-Charge-Info you can parse it with lua.

Code:
hdr = session:getVariable("sip_h_P-Charge-Info")
trk = hdr:match("Trk=(.+)")

I edited this message what I initially wrote doesn't apply to P- header names.
 
Last edited:
  • Like
Reactions: mskenderian

mskenderian

New Member
Jun 16, 2022
4
0
1
39
Ironically freeswitch doesn't provide any way to parse sip headers.

The header gets set as a channel variable sip_h_P-Charge-Info you can parse it with lua.

Code:
hdr = session:getVariable("sip_h_P-Charge-Info")
trk = hdr:match("Trk=(.+)")

I edited this message what I initially wrote doesn't apply to P- header names.
Thank you. This works.
 
Status
Not open for further replies.