Hello,
If I understand correctly to insert some additional ISUP(SIP-T) data after SDP into INVITE SIP message the first step would be to convert a single body of this SIP message to a multipart body with `set_body_multipart` (from `textops` module) without any parameters (according to https://www.kamailio.org/docs/modules/stable/modules/textops.html#textops.f....) and then it would convert this message to a multipart one. Then use `append_body_part` from the same module to insert ISUP data. However when we tested the first step `set_body_multipart` didn't insert a proper closing boundary delimiter (ending with two more hyphens) as it's supposed to according its documentation: _The core will take care of the last boundary ending "--". Detecting which one is the last and fixing the others if needed._
We tested with the latest release 4.4.1:
kamailio.cfg: ``` route { # CANCEL processing if (is_method("CANCEL")) { if (t_check_trans()) t_relay(); exit; }
# account only INVITEs if (is_method("INVITE")) { setflag(1); # do accounting
if(!ds_is_from_list("1")){ ## handle INBOUND ISUP route(ISUP); } else { xlog("SIP message from $ru\n"); ## handle OUTBOUND ISUP route(TO_PSTN); } }
if ($rU==$null) { # request with no Username in RURI sl_send_reply("484","Address Incomplete"); exit; }
# dispatch destinations route(DISPATCH); }
route[TO_PSTN] { set_body_multipart(); # supposed to do the right thing msg_apply_changes(); # tested with and without this call, still the same result } ```
Malformed INVITE SIP message (from Wireshark): ``` INVITE sip:1000@192.168.38.88:5080 SIP/2.0 Record-Route: sip:192.168.38.88:5080;lr=on;callgenie=true Via: SIP/2.0/UDP 192.168.38.88:5080;branch=z9hG4bK61df.358abca8ab3f0186f30b081e906e09d0.0 Via: SIP/2.0/UDP 192.168.38.88:5060;branch=z9hG4bK0fdf4145 Max-Forwards: 69 From: "Anonymous" sip:anonymous@anonymous.invalid;tag=as6510bcf9 To: sip:1000@192.168.38.88:5080 Contact: sip:anonymous@192.168.38.88:5060 Call-ID: 4ad0a0133cdbea9c6a05677715d4bd21@192.168.38.88:5060 CSeq: 102 INVITE User-Agent: Asterisk PBX 13.6.0 Date: Tue, 07 Jun 2016 08:38:02 GMT Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH, MESSAGE Supported: replaces, timer X-ISUP-ANI: 081101213 Content-Length: 435 Content-Type: multipart/mixed;boundary="unique-boundary-1" Mime-Version: 1.0
--unique-boundary-1 Content-Type: application/sdp
v=0 o=root 957277759 957277759 IN IP4 192.168.38.88 s=Asterisk PBX 13.6.0 c=IN IP4 192.168.38.88 b=CT:384 t=0 0 m=audio 11424 RTP/AVP 0 8 3 101 a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=rtpmap:3 GSM/8000 a=rtpmap:101 telephone-event/8000 a=fmtp:101 0-16 a=maxptime:150 a=sendrecv m=video 13788 RTP/AVP 34 a=rtpmap:34 H263/90000 a=sendrecv
--unique-boundary-1 SIP/2.0 100 Trying Via: SIP/2.0/UDP 192.168.38.88:5080;branch=z9hG4bK61df.358abca8ab3f0186f30b081e906e09d0.0 Via: SIP/2.0/UDP 192.168.38.88:5060;branch=z9hG4bK0fdf4145 To: sip:1000@192.168.38.88:5080 From: "Anonymous" sip:anonymous@anonymous.invalid;tag=as6510bcf9 Call-ID: 4ad0a0133cdbea9c6a05677715d4bd21@192.168.38.88:5060 CSeq: 102 INVITE Content-Length: 0
<skipped> ```
Thanks.
--- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/kamailio/kamailio/issues/661