Hi
I got the following error when dealing with SIP INVITE with multi-part when the client is behind NAT:
May 12 15:27:04 test /usr/sbin/kamailio[1792]: ERROR: nathelper [nathelper.c:2954]: can't extract body from the message
The SIP INVITE message looks like:
INVITE sip:toto@test.net sip%3Atoto@test.net SIP/2.0 [...] Content-Type: multipart/mixed;boundary=gnkr Content-Length: 659
--gnkr Content-Type: application/sdp Content-Length: 330
v=0 o=pascal 1273565967736 1273565967737 IN IP4 10.1.1.226 [...]
It looks the Content-length within the multi-part is not accepted.
I fixed it changing the source code of parser/sdp/sdp_helpr_funcs.c, in get_sdp_hdr_field() function:
switch(hdr->type){ case HDR_CONTENTTYPE_T: case HDR_CONTENTDISPOSITION_T: case HDR_CONTENTLENGTH_T:
replaced with:
switch(hdr->type){ case HDR_CONTENTTYPE_T: case HDR_CONTENTDISPOSITION_T:
(I'm using kamailio 3.0.1)
Cheers Pascal
2010/5/12 Pascal Maugeri pascal.maugeri@gmail.com:
It looks the Content-length within the multi-part is not accepted. I fixed it changing the source code of parser/sdp/sdp_helpr_funcs.c, in get_sdp_hdr_field() function: switch(hdr->type){ case HDR_CONTENTTYPE_T: case HDR_CONTENTDISPOSITION_T: case HDR_CONTENTLENGTH_T:
replaced with:
switch(hdr->type){ case HDR_CONTENTTYPE_T: case HDR_CONTENTDISPOSITION_T:
(I'm using kamailio 3.0.1)
Hi, perhaps you mean exactly the opposite (the first is your modification and the second the current code)? I'm inspecting parser/sdp/sdp_helpr_funcs.c and I don't see "case HDR_CONTENTLENGTH_T".
Regards.
Yes Iñaki, you're right, sorry for this mistake.
this is the existing code:
switch(hdr->type){ case HDR_CONTENTTYPE_T: case HDR_CONTENTDISPOSITION_T:
that I replaced with the following:
switch(hdr->type){ case HDR_CONTENTTYPE_T: case HDR_CONTENTDISPOSITION_T: case HDR_CONTENTLENGTH_T:
Cheers Pascal
On Wed, May 12, 2010 at 5:41 PM, Iñaki Baz Castillo ibc@aliax.net wrote:
2010/5/12 Pascal Maugeri pascal.maugeri@gmail.com:
It looks the Content-length within the multi-part is not accepted. I fixed it changing the source code of parser/sdp/sdp_helpr_funcs.c, in get_sdp_hdr_field() function: switch(hdr->type){ case HDR_CONTENTTYPE_T: case HDR_CONTENTDISPOSITION_T: case HDR_CONTENTLENGTH_T:
replaced with:
switch(hdr->type){ case HDR_CONTENTTYPE_T: case HDR_CONTENTDISPOSITION_T:
(I'm using kamailio 3.0.1)
Hi, perhaps you mean exactly the opposite (the first is your modification and the second the current code)? I'm inspecting parser/sdp/sdp_helpr_funcs.c and I don't see "case HDR_CONTENTLENGTH_T".
Regards.
-- Iñaki Baz Castillo ibc@aliax.net
Changing get_sdp_hdr_field() will break the sdp parser. The issue doesn't seem to be with the sdp parser, but with how the parser API is used inside the nathelper module. Please open a bug report on the tracker.
Regards, Ovidiu Sas
On Wed, May 12, 2010 at 11:12 AM, Pascal Maugeri pascal.maugeri@gmail.com wrote:
Hi I got the following error when dealing with SIP INVITE with multi-part when the client is behind NAT:
May 12 15:27:04 test /usr/sbin/kamailio[1792]: ERROR: nathelper [nathelper.c:2954]: can't extract body from the message
The SIP INVITE message looks like:
INVITE sip:toto@test.net SIP/2.0 [...] Content-Type: multipart/mixed;boundary=gnkr Content-Length: 659 --gnkr Content-Type: application/sdp Content-Length: 330 v=0 o=pascal 1273565967736 1273565967737 IN IP4 10.1.1.226 [...]
It looks the Content-length within the multi-part is not accepted. I fixed it changing the source code of parser/sdp/sdp_helpr_funcs.c, in get_sdp_hdr_field() function: switch(hdr->type){ case HDR_CONTENTTYPE_T: case HDR_CONTENTDISPOSITION_T: case HDR_CONTENTLENGTH_T:
replaced with:
switch(hdr->type){ case HDR_CONTENTTYPE_T: case HDR_CONTENTDISPOSITION_T:
(I'm using kamailio 3.0.1) Cheers Pascal _______________________________________________ SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list sr-users@lists.sip-router.org http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users