when sems receives voice call invite from ua behind nat that has direction:active in its sdp, like this:
Session Description Protocol Session Description Protocol Version (v): 0 Owner/Creator, Session Id (o): foo.bar 0 0 IN IP4 192.168.1. 68 Session Name (s): - Connection Information (c): IN IP4 192.168.1.68 Time Description, active time (t): 0 0 Media Description, name and address (m): audio 8500 RTP/AVP 18 4 112 100 101 0 8 106 Media Attribute (a): sendrecv Media Attribute (a): rtpmap:18 G729/8000 Media Attribute (a): rtpmap:4 G723/8000 Media Attribute (a): rtpmap:112 AMR/8000 Media Attribute (a): rtpmap:100 EG711U/8000 Media Attribute (a): rtpmap:101 EG711A/8000 Media Attribute (a): rtpmap:0 PCMU/8000 Media Attribute (a): rtpmap:8 PCMA/8000 Media Attribute (a): rtpmap:106 telephone-event/8000 Media Attribute (a): direction:active
sems includes direction:passive in 200 OK and starts to correctly send rtp packets to the ip address/port of received rtp packets.
however, then sems receives a voice+video call invite like this:
Session Description Protocol Session Description Protocol Version (v): 0 Owner/Creator, Session Id (o): foo.bar 0 0 IN IP4 192.168.1.68 Session Name (s): - Connection Information (c): IN IP4 192.168.1.68 Time Description, active time (t): 0 0 Media Description, name and address (m): audio 8500 RTP/AVP 18 4 112 100 101 0 8 106 Media Attribute (a): sendrecv Media Attribute (a): rtpmap:18 G729/8000 Media Attribute (a): rtpmap:4 G723/8000 Media Attribute (a): rtpmap:112 AMR/8000 Media Attribute (a): rtpmap:100 EG711U/8000 Media Attribute (a): rtpmap:101 EG711A/8000 Media Attribute (a): rtpmap:0 PCMU/8000 Media Attribute (a): rtpmap:8 PCMA/8000 Media Attribute (a): rtpmap:106 telephone-event/8000 Media Description, name and address (m): video 8600 RTP/AVP 34 Bandwidth Information (b): AS:300 Media Attribute (a): sendrecv Media Attribute (a): rtpmap:34 H263/90000 Media Attribute (a): direction:active
it does not include direction:passive in 200 OK and keeps on sending rtp packets to 192.168.1.68 even after receiving first voice rtp packet from public ip of the ua.
is this a bug in sems or is it a bug in sr nathelper_k fix_nated_sdp("1") implementation, i.e., does that function place direction:active line to only one place, when it should place it in two places (in both voice and video media descriptions)?
-- juha
o Juha Heinanen on 09/19/2011 08:39 PM:
when sems receives voice call invite from ua behind nat that has direction:active in its sdp, like this:
Session Description Protocol Session Description Protocol Version (v): 0 Owner/Creator, Session Id (o): foo.bar 0 0 IN IP4 192.168.1.
68 Session Name (s): - Connection Information (c): IN IP4 192.168.1.68 Time Description, active time (t): 0 0 Media Description, name and address (m): audio 8500 RTP/AVP 18 4 112 100 101 0 8 106 Media Attribute (a): sendrecv Media Attribute (a): rtpmap:18 G729/8000 Media Attribute (a): rtpmap:4 G723/8000 Media Attribute (a): rtpmap:112 AMR/8000 Media Attribute (a): rtpmap:100 EG711U/8000 Media Attribute (a): rtpmap:101 EG711A/8000 Media Attribute (a): rtpmap:0 PCMU/8000 Media Attribute (a): rtpmap:8 PCMA/8000 Media Attribute (a): rtpmap:106 telephone-event/8000 Media Attribute (a): direction:active
sems includes direction:passive in 200 OK and starts to correctly send rtp packets to the ip address/port of received rtp packets.
however, then sems receives a voice+video call invite like this:
Session Description Protocol Session Description Protocol Version (v): 0 Owner/Creator, Session Id (o): foo.bar 0 0 IN IP4 192.168.1.68 Session Name (s): - Connection Information (c): IN IP4 192.168.1.68 Time Description, active time (t): 0 0 Media Description, name and address (m): audio 8500 RTP/AVP 18 4 112 100 101 0 8 106 Media Attribute (a): sendrecv Media Attribute (a): rtpmap:18 G729/8000 Media Attribute (a): rtpmap:4 G723/8000 Media Attribute (a): rtpmap:112 AMR/8000 Media Attribute (a): rtpmap:100 EG711U/8000 Media Attribute (a): rtpmap:101 EG711A/8000 Media Attribute (a): rtpmap:0 PCMU/8000 Media Attribute (a): rtpmap:8 PCMA/8000 Media Attribute (a): rtpmap:106 telephone-event/8000 Media Description, name and address (m): video 8600 RTP/AVP 34 Bandwidth Information (b): AS:300 Media Attribute (a): sendrecv Media Attribute (a): rtpmap:34 H263/90000 Media Attribute (a): direction:active
it does not include direction:passive in 200 OK and keeps on sending rtp packets to 192.168.1.68 even after receiving first voice rtp packet from public ip of the ua.
is this a bug in sems or is it a bug in sr nathelper_k fix_nated_sdp("1") implementation, i.e., does that function place direction:actvive line to only one place, when it should place it in two places (in both voice and video media descriptions)?
The latter. The direction attribute from comedia draft is a media level attribute. If it is set in the video stream only, it applies only to the video stream. fix_nated_sdp should put it in the audio m section as well.
Note that the 'setup' attribute from rfc 4145 - which is not honored by sems - can be media or session level; if it is added to session level, it applies to all media lines.
Stefan
-- juha _______________________________________________ Sems mailing list Sems@lists.iptel.org http://lists.iptel.org/mailman/listinfo/sems
Stefan Sayer writes:
The latter. The direction attribute from comedia draft is a media level attribute. If it is set in the video stream only, it applies only to the video stream. fix_nated_sdp should put it in the audio m section as well.
stefan,
thanks for your reply. i fixed fix_nated_sdp() function in sip router.
-- juha
Hello,
On 9/20/11 9:19 AM, Juha Heinanen wrote:
Stefan Sayer writes:
The latter. The direction attribute from comedia draft is a media level attribute. If it is set in the video stream only, it applies only to the video stream. fix_nated_sdp should put it in the audio m section as well.
stefan,
thanks for your reply. i fixed fix_nated_sdp() function in sip router.
ok, ignore my previous email in this thread, I checked the file now, after the morning pull, and discovered you just did.
Cheers, Daniel
Hello,
On 9/19/11 9:47 PM, Stefan Sayer wrote:
o Juha Heinanen on 09/19/2011 08:39 PM:
when sems receives voice call invite from ua behind nat that has direction:active in its sdp, like this:
Session Description Protocol Session Description Protocol Version (v): 0 Owner/Creator, Session Id (o): foo.bar 0 0 IN IP4
192.168.1. 68 Session Name (s): - Connection Information (c): IN IP4 192.168.1.68 Time Description, active time (t): 0 0 Media Description, name and address (m): audio 8500 RTP/AVP 18 4 112 100 101 0 8 106 Media Attribute (a): sendrecv Media Attribute (a): rtpmap:18 G729/8000 Media Attribute (a): rtpmap:4 G723/8000 Media Attribute (a): rtpmap:112 AMR/8000 Media Attribute (a): rtpmap:100 EG711U/8000 Media Attribute (a): rtpmap:101 EG711A/8000 Media Attribute (a): rtpmap:0 PCMU/8000 Media Attribute (a): rtpmap:8 PCMA/8000 Media Attribute (a): rtpmap:106 telephone-event/8000 Media Attribute (a): direction:active
sems includes direction:passive in 200 OK and starts to correctly send rtp packets to the ip address/port of received rtp packets.
however, then sems receives a voice+video call invite like this:
Session Description Protocol Session Description Protocol Version (v): 0 Owner/Creator, Session Id (o): foo.bar 0 0 IN IP4
192.168.1.68 Session Name (s): - Connection Information (c): IN IP4 192.168.1.68 Time Description, active time (t): 0 0 Media Description, name and address (m): audio 8500 RTP/AVP 18 4 112 100 101 0 8 106 Media Attribute (a): sendrecv Media Attribute (a): rtpmap:18 G729/8000 Media Attribute (a): rtpmap:4 G723/8000 Media Attribute (a): rtpmap:112 AMR/8000 Media Attribute (a): rtpmap:100 EG711U/8000 Media Attribute (a): rtpmap:101 EG711A/8000 Media Attribute (a): rtpmap:0 PCMU/8000 Media Attribute (a): rtpmap:8 PCMA/8000 Media Attribute (a): rtpmap:106 telephone-event/8000 Media Description, name and address (m): video 8600 RTP/AVP 34 Bandwidth Information (b): AS:300 Media Attribute (a): sendrecv Media Attribute (a): rtpmap:34 H263/90000 Media Attribute (a): direction:active
it does not include direction:passive in 200 OK and keeps on sending rtp packets to 192.168.1.68 even after receiving first voice rtp packet from public ip of the ua.
is this a bug in sems or is it a bug in sr nathelper_k fix_nated_sdp("1") implementation, i.e., does that function place direction:actvive line to only one place, when it should place it in two places (in both voice and video media descriptions)?
The latter. The direction attribute from comedia draft is a media level attribute. If it is set in the video stream only, it applies only to the video stream. fix_nated_sdp should put it in the audio m section as well.
Hello,
I was looking to modules_k/nathelper/nathelper.c in fix_nated_sdp() and has a loop for all m= lines to add direction attribute (around line 1374). From the code, the direction attribute is added just after m= line, in the trace before seems to be the last. Is it sure this is added by kamailio or came from caller?
Cheers, Daniel