[sr-dev] [kamailio/kamailio] set_body_multipart (from textops module) doesn't insert a proper closing boundary delimiter (#661)
Kamil Shakirov
notifications at github.com
Tue Jun 7 11:47:24 CEST 2016
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.set_body_multipart) 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 at 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 at anonymous.invalid>;tag=as6510bcf9
To: <sip:1000 at 192.168.38.88:5080>
Contact: <sip:anonymous at 192.168.38.88:5060>
Call-ID: 4ad0a0133cdbea9c6a05677715d4bd21 at 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 at 192.168.38.88:5080>
From: "Anonymous" <sip:anonymous at anonymous.invalid>;tag=as6510bcf9
Call-ID: 4ad0a0133cdbea9c6a05677715d4bd21 at 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sip-router.org/pipermail/sr-dev/attachments/20160607/0aaa9f48/attachment.html>
More information about the sr-dev
mailing list