[SR-Users] (Kamailio/RTPproyx) Public -> LAN -> Asterisk (1, 2, .., n)

SamyGo govoiper at gmail.com
Tue Aug 6 12:13:34 CEST 2013


You should not change the kamailio.cfg for nat=yes param, that works the
way it is. Yes you're right changing the NAT param in asterisk won't change
anything.

Please enable sip debug on asterisk and paste the complete INVITE/200OK
packets for the established call with no audio.

--
Sammy






On Tue, Aug 6, 2013 at 3:06 AM, Alexandr Usov <blessendor at gmail.com> wrote:

> It seems I am undesrtand whereis problem can be found.
> Original tutorial of Kamailio+Asterisk realtime integration (by Asipto)
> containse settings for cheking if the "nat=yes" presents, but in Asterisk
> 11 I am using nat=force_rport,comedia.
>
>
> # RTPProxy control
> route[NATMANAGE] {
> #!ifdef WITH_NAT
>     if (is_request()) {
>         if(has_totag()) {
>             if(check_route_param("nat=yes")) {
>                 setbflag(FLB_NATB);
>             }
>         }
>     }
>     if (!(isflagset(FLT_NATS) || isbflagset(FLB_NATB)))
>         return;
>
>         rtpproxy_manage();
>
>     if (is_request()) {
>         if (!has_totag()) {
>             add_rr_param(";nat=yes");
>         }
>     }
>     if (is_reply()) {
>         if(isbflagset(FLB_NATB)) {
>             fix_nated_contact();
>         }
>     }
> #!endif
>     return;
> }
>
>
> BTW, we don't need NAT for asterisks peers, if we use Asterisk behinde
> Kanailio LAN interface (2.2.2.2).
>
>   ToHost       : 2.2.2.2
>   Addr->IP     : 2.2.2.2:5060
>
> If I cahnge to nat=no in the NATMANAGE - RTP debug still showing from
> 1.1.1.1 (public) kamailio IP.
> Rtpproxy started in the bridge mode.
>
> set_destination: Parsing <sip:2.2.2.2;r2=on;lr=on;nat=no> for address/port
> to send to
> set_destination: set destination to 2.2.2.2:5060
> Reliably Transmitting (no NAT) to 2.2.2.2:5060:
> BYE sip:1-101 at PUBLIC.CLIENT.PEER.IP:17303;ob SIP/2.0
> Via: SIP/2.0/UDP 2.2.2.101:5080;branch=z9hG4bK1597848e
> Route: <sip:2.2.2.2;r2=on;lr=on;nat=no>,<sip:1.1.1.1;r2=on;lr=on;nat=no>
>
> Sent RTP packet to      1.1.1.1:63232 (type 00, seq 003837, ts 016800,
> len 000160)
> Got  RTP packet from    2.2.2.2:42346 (type 00, seq 000986, ts 016960,
> len 000160)
> Sent RTP packet to      1.1.1.1:63232 (type 00, seq 003838, ts 016960,
> len 000160)
> Got  RTP packet from    2.2.2.2:42346 (type 00, seq 000987, ts 017120,
> len 000160)
> Sent RTP packet to      1.1.1.1:63232 (type 00, seq 003839, ts 017120,
> len 000160)
>
> But no voicing)
>
>
> 2013/8/6 SamyGo <govoiper at gmail.com>
>
>> Dear Alexandr,
>>
>> You can connect Kamailio to RTPproxy via socket as well, use modparam
>> like this:
>>
>> modparam("rtpproxy", "rtpproxy_sock", "udp:127.0.0.1:12221")
>>
>> Then if your rtprpoxy is started in bridged mode you should use the "i"
>> and "e" flags while you call the rtpproxy-manage() function in the
>> kamailio.cfg file.
>>
>> The placement of both the flags sets the SDP c= param , so if you use
>> "ie" combination of flag then that is not equal to "ei" combination of the
>> flag.
>>
>> I also suggest that you turn on sip debug on the call receiving asterisk
>> and observe the SDP for an incoming call from Kamailio. that will help you
>> figure out the situation in SDP.
>>
>> Best Regards,
>> Sammy
>>
>>
>>
>>
>>
>> On Tue, Aug 6, 2013 at 2:02 AM, Alexandr Usov <blessendor at gmail.com>wrote:
>>
>>> Thank you for response!
>>> A little difficult for me to find the same logic in my case with
>>> tutorial of ipv4/ipv6 bridgin...
>>>
>>> When I started
>>> /usr/sbin/rtpproxy -u kamailio -l 1.1.1.1/2.2.2.2 -s udp:127.0.0.1 12221
>>>
>>> There is no sound.
>>>
>>> Is this a major to connect via unix sock?:
>>>
>>> modparam("rtpproxy", "rtpproxy_sock",
>>> "unix:/var/run/rtpproxy/rtpproxy.sock")
>>>
>>>
>>>
>>>
>>>
>>> 2013/8/6 Daniel-Constantin Mierla <miconda at gmail.com>
>>>
>>>>  Hello,
>>>>
>>>> you have to use rtpproxy in bridge mode, to route packets between the
>>>> two local network interfaces. There are many examples out there, one shows
>>>> even how to bridge between ipv4 and ipv4 networks -- you can use it as
>>>> reference:
>>>>
>>>> - http://kb.asipto.com/kamailio:kamailio-mixed-ipv4-ipv6
>>>>
>>>> Cheers,
>>>> Daniel
>>>>
>>>> On 8/5/13 7:12 PM, Alexandr Usov wrote:
>>>>
>>>>
>>>>
>>>> I have Kamailio on OpenSUSE with static real Public IP (WAN), for ex.
>>>> 1.1.1.1. I have LAN IP 2.2.2.2. Asterisk as KVM virtual machine with LAN IP
>>>> 2.2.2.101 and default GW not the SuSe (2.2.2.2), but 2.2.2.1 pfsense LAN
>>>> with PUB IP 1.1.1.2) I am configured Registration of UA on Kamailio DB, and
>>>> on Asterisk side create a static peers with Kamailio LAN ip (host=2.2.2.2).
>>>>
>>>> RTP Proxy question.
>>>>
>>>> /usr/sbin/rtpproxy -u daemon -l 1.1.1.1 -s udp:127.0.0.1 12221
>>>>
>>>>  .... kamailio.cfg ...
>>>>
>>>> # RTPProxy control
>>>> route[NATMANAGE] {
>>>> #!ifdef WITH_NAT
>>>>     if (is_request()) {
>>>>         if(has_totag()) {
>>>>             if(check_route_param("nat=yes")) {
>>>>                 setbflag(FLB_NATB);
>>>>             }
>>>>         }
>>>>     }
>>>>     if (!(isflagset(FLT_NATS) || isbflagset(FLB_NATB)))
>>>>         return;
>>>>
>>>>         rtpproxy_manage();
>>>>
>>>>     if (is_request()) {
>>>>         if (!has_totag()) {
>>>>             add_rr_param(";nat=yes");
>>>>         }
>>>>     }
>>>>     if (is_reply()) {
>>>>         if(isbflagset(FLB_NATB)) {
>>>>             fix_nated_contact();
>>>>         }
>>>>     }
>>>> #!endif
>>>>     return;
>>>> }
>>>>
>>>>
>>>> Testing call:
>>>>
>>>> Whe User 1-100 calling User 1-101, on Asterisk side I see:
>>>>
>>>>     -- Called SIP/1-100 at sip1.somedomain.com.ua
>>>>     -- SIP/sip1.somedomain.com.ua-000004cf is ringing
>>>>     -- SIP/sip1.somedomain.com.ua-000004cf answered SIP/1-101-000004ce
>>>>        > 0x15bc370 -- Probation passed - setting RTP source address to
>>>> 1.1.1.1:50868
>>>>        > 0x7f2b6044bd10 -- Probation passed - setting RTP source
>>>> address to 1.1.1.1:35082
>>>>
>>>> Got  RTP packet from    1.1.1.1:50868 (type 00, seq 027109, ts 000160,
>>>> len 000160)
>>>> Sent RTP packet to      1.1.1.1:35082 (type 00, seq 037469, ts 000160,
>>>> len 000160)
>>>> Got  RTP packet from    1.1.1.1:50868 (type 00, seq 027110, ts 000320,
>>>> len 000160)
>>>> Sent RTP packet to      1.1.1.1:35082 (type 00, seq 037470, ts 000320,
>>>> len 000160)
>>>> Got  RTP packet from    1.1.1.1:50868 (type 00, seq 027111, ts 000480,
>>>> len 000160)
>>>> Sent RTP packet to      1.1.1.1:35082 (type 00, seq 037471, ts 000480,
>>>> len 000160)
>>>> Got  RTP packet from    1.1.1.1:50868 (type 00, seq 027112, ts 000640,
>>>> len 000160)
>>>> Sent RTP packet to      1.1.1.1:35082 (type 00, seq 037472, ts 000640,
>>>> len 000160)
>>>>
>>>>
>>>> Voice transfers OK.
>>>>
>>>> But why not Kamailio LAN ip I receiving on the Asterisk side with the
>>>> same LAN?
>>>>
>>>> And Kamailio log grep:
>>>>
>>>> skynet:~ # tail -f /var/log/messages | grep rtpproxy
>>>> 2013-08-05T19:18:17.508760+03:00 skynet kamailio[25462]: 3(25481)
>>>> DEBUG: rtpproxy [rtpproxy_funcs.c:148]: check_content_type(): type
>>>> <application/sdp> found valid
>>>> 2013-08-05T19:18:17.508875+03:00 skynet kamailio[25462]: 3(25481)
>>>> DEBUG: rtpproxy [rtpproxy.c:2624]: force_rtp_proxy(): proxy reply: 63566
>>>> 1.1.1.1
>>>> 2013-08-05T19:18:17.530765+03:00 skynet kamailio[25462]: 6(25484)
>>>> DEBUG: rtpproxy [rtpproxy_funcs.c:148]: check_content_type(): type
>>>> <application/sdp> found valid
>>>> 2013-08-05T19:18:17.530876+03:00 skynet kamailio[25462]: 6(25484)
>>>> DEBUG: rtpproxy [rtpproxy.c:2624]: force_rtp_proxy(): proxy reply: 41958
>>>> 1.1.1.1
>>>> 2013-08-05T19:18:18.625815+03:00 skynet kamailio[25462]: 4(25482)
>>>> DEBUG: rtpproxy [rtpproxy_funcs.c:148]: check_content_type(): type
>>>> <application/sdp> found valid
>>>> 2013-08-05T19:18:18.627131+03:00 skynet kamailio[25462]: 4(25482)
>>>> DEBUG: rtpproxy [rtpproxy.c:2624]: force_rtp_proxy(): proxy reply: 39876
>>>> 1.1.1.1
>>>> 2013-08-05T19:18:18.632649+03:00 skynet kamailio[25462]:
>>>> a=nortpproxy:yes
>>>> 2013-08-05T19:18:18.648075+03:00 skynet kamailio[25462]: 6(25484)
>>>> DEBUG: rtpproxy [rtpproxy_funcs.c:148]: check_content_type(): type
>>>> <application/sdp> found valid
>>>> 2013-08-05T19:18:18.649615+03:00 skynet kamailio[25462]: 6(25484)
>>>> DEBUG: rtpproxy [rtpproxy.c:2624]: force_rtp_proxy(): proxy reply: 43500
>>>> 1.1.1.1
>>>> 2013-08-05T19:18:18.653948+03:00 skynet kamailio[25462]:
>>>> a=nortpproxy:yes
>>>> 2013-08-05T19:18:18.688603+03:00 skynet kamailio[25462]: 4(25482)
>>>> DEBUG: rtpproxy [rtpproxy_funcs.c:148]: check_content_type(): type
>>>> <application/sdp> found valid
>>>> 2013-08-05T19:18:18.689762+03:00 skynet kamailio[25462]: 4(25482)
>>>> DEBUG: rtpproxy [rtpproxy.c:2624]: force_rtp_proxy(): proxy reply: 63566
>>>> 1.1.1.1
>>>> 2013-08-05T19:18:18.701062+03:00 skynet kamailio[25462]: 6(25484)
>>>> DEBUG: rtpproxy [rtpproxy_funcs.c:148]: check_content_type(): type
>>>> <application/sdp> found valid
>>>> 2013-08-05T19:18:18.701405+03:00 skynet kamailio[25462]: 6(25484)
>>>> DEBUG: rtpproxy [rtpproxy.c:2624]: force_rtp_proxy(): proxy reply: 43500
>>>> 1.1.1.1
>>>> 2013-08-05T19:18:18.705506+03:00 skynet kamailio[25462]:
>>>> a=nortpproxy:yes
>>>>
>>>>  My goal is using Asterisk boxes behind Kamailio with the same LAN or
>>>> even OpeVPN Lan2Lan, with Public IP on Kamailio WAN for users registration
>>>> and RTP routing. So is strange to my, why RTPproxy not rewrite source of
>>>> RTP traffic from PUBLIC Kamailio IP to LAN Kamailio IP when user A calls B
>>>> via Asterisk?
>>>>
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing listsr-users at lists.sip-router.orghttp://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
>>>>
>>>>
>>>> --
>>>> Daniel-Constantin Mierla - http://www.asipto.comhttp://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda
>>>>
>>>>
>>>> _______________________________________________
>>>> SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
>>>> sr-users at lists.sip-router.org
>>>> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
>>>>
>>>>
>>>
>>> _______________________________________________
>>> SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
>>> sr-users at lists.sip-router.org
>>> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
>>>
>>>
>>
>> _______________________________________________
>> SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
>> sr-users at lists.sip-router.org
>> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
>>
>>
>
> _______________________________________________
> SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
> sr-users at lists.sip-router.org
> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sip-router.org/pipermail/sr-users/attachments/20130806/15d21ebf/attachment-0001.html>


More information about the sr-users mailing list