Hi MingHon,
can the RTPProxy actually use the External-Address? If i understood you correctly you do NAT and port-forwarding between your Box and the Internet on a firewall. So, that is your problem. The RTPProxy tries to open an Port on the External Address (which is not local) and fails. Thus he cannot relay RTP-Traffic, and replies with an error to your kamailio box. If you would move your RTPProxy to the world-wide-web, then you would not have any problems. An RTPProxy behind NAT is horrible and you may run into trouble.
Carsten
2011/7/6 MingHon gminghon@gmail.com:
Hi Carsten, i tried before putting external address but once i put external address i will get error on my /var/log/messages Jul 6 18:06:56 c5 /usr/local/sbin/kamailio[20025]: ERROR: rtpproxy [rtpproxy.c:2211]: incorrect port 0 in reply from rtpproxy Jul 6 18:06:56 c5 /usr/local/sbin/kamailio[20024]: ERROR: rtpproxy [rtpproxy.c:2211]: incorrect port 0 in reply from rtp proxy Jul 6 18:06:57 c5 /usr/local/sbin/kamailio[20025]: ERROR: rtpproxy [rtpproxy.c:2211]: incorrect port 0 in reply from rtp proxy both kamailio and rtpproxy is in one box and behind nat with one interface ip address 192.168.1.3 in the router i already port forward 5060 udp and 10000-20000 udp to 192.168.1.3. Please adv. Thank you very much. :)
On Wed, Jul 6, 2011 at 6:01 PM, Carsten Bock carsten@ng-voice.com wrote:
Hi MingHon,
you should start your RTPProxy with "-l <external address>" (instead of the internal address). The address provided will be used in the signalling / replacement in the SDP.
Carsten
2011/7/6 MingHon gminghon@gmail.com:
Hi, Thanks for your reply.. RTPProxy and kamailio is running on the same centos box. below is the command how i connect both RTPProxy and Kamailio /----Kamailio----/ #!ifdef WITH_NAT modparam("rtpproxy", "rtpproxy_sock", "udp:localhost:7722") #!endif /----RTPProxy----/ rtpproxy -l 192.168.1.3 -s udp:*:7722 -m 10000 -M 20000 -u user /----kamctl fifo nh_show_rtpp----/ udp:localhost:7722:: set=0 index:: 0 disabled:: 0 weight:: 1 recheck_ticks:: 0 /--------/ im using kamailio ver. 3.1.4 and rtpproxy ver. 1.2.1
Please advice.. Thank you very much for your help.
On Wed, Jul 6, 2011 at 4:16 PM, Carsten Bock carsten@ng-voice.com wrote:
Hi,
Note: The methods of rtpproxy-module will only replace the IP, if the Kamailio can access the RTPProxy.
How is your RTPProxy connected to your Kamailio? Socket or TCP? Do you have the Kamailio FIFO enabeld? If you have the fifo enabled, you should check the following:
kamctl fifo nh_show_rtpp
You should see, that the Kamailio is connected to the RTPProxy. If no, then that is your problem. If the RTPProxy is connected and is listening on the TCP socket, then you can do an ngrep to see the communication between Kamailio and RTPProxy, which might help you further with your investigation.
Carsten
2011/7/6 MingHon gminghon@gmail.com:
Hi Carsten, no is not about just rewriting the SDP. i need my UACs media to relay on my rtpproxy currently my UACs are sending the media to a private ip. my rtpproxy is in behind nat and UACs behind another nat.
On Wed, Jul 6, 2011 at 3:15 PM, Carsten Bock carsten@ng-voice.com wrote:
Hi MingHon,
what do you want to achieve? If it is only about rewritibng the SDP, then this will help you:
fix_nated_sdp("10", "<your-ip-here>"); => 0x02 rewrite media IP address (c=) with the provided IP address => 0x08 rewrite IP from origin description (o=) with the provided IP address
Kind regards, Carsten
2011/7/6 MingHon gminghon@gmail.com: > hello List, > anyone could give some hints?? > im still unable to rewrite the sdp body. > hope to hear from you all. > thanks > -- > Regards, > > MingHon > > > On Tue, Jul 5, 2011 at 3:49 PM, MingHon gminghon@gmail.com > wrote: >> >> Hi List, >> im facing an issue that my kamailio proxy did not replace the ip >> address >> in the invite and 200OK sdp body. >> my rtpproxy is running: rtpproxy -l 192.168.1.3 -u:*:7722 -u user >> my kamailio is listening on 192.168.1.3, also >> define: advertised_address="175.136.223.112"; >> & advertised_port=5060; >> and my asterisk is on 192.168.1.23. >> sip signalling and rtp port forwarded to kamailio. >> uacs from another nat register successfully. >> if i put 2 lines of force_rtp_proxy("fcow","175.136.223.112"); >> i will get double ip addr in c and o but kamailio ignore my ip >> addr. >> example i will get >> c=IN IP4 192.168.1.3192.168.1.3 >> here is part of my simple script. >> hope you can help. >> thank you very much. >> ---------------cfg------------------- >> route[RTPPROXY] { >> #!ifdef WITH_NAT >> if (is_method("BYE")) { >> unforce_rtp_proxy(); >> } else if (is_method("INVITE")){ >> force_rtp_proxy("fcow","175.136.223.112"); >> #force_rtp_proxy("fcow","175.136.223.112"); >> xlog("L_INFO","offer"); >> } >> if (!has_totag()) add_rr_param(";nat=yes"); >> #!endif >> return; >> } >> -------------------------------------- >> and here is the wireshark for uac INVITE and OK. >> -----------INVITE----------------- >> ve0 >> EE;p9INVITE sip:102@192.168.2.132:5062 SIP/2.0 >> Record-Route: sip:192.168.1.3;lr=on;ftag=as032358a3;nat=yes >> Via: SIP/2.0/UDP 192.168.1.3;branch=z9hG4bK09d5.c5e9e8d2.0 >> Via: SIP/2.0/UDP >> 192.168.1.23:5080;branch=z9hG4bK71c27189;rport=5080 >> Max-Forwards: 69 >> From: "101" sip:102@aextddns.dyndns.info;tag=as032358a3 >> To: sip:102@192.168.1.3:5060 >> Contact: sip:102@192.168.1.23:5080 >> Call-ID: 416f6e09674ae9671bb7144a1cb11137@aextddns.dyndns.info >> CSeq: 102 INVITE >> User-Agent: Asterisk PBX 1.6.2.18 >> Date: Tue, 05 Jul 2011 07:20:53 GMT >> Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, >> NOTIFY, >> INFO >> Supported: replaces, timer >> Content-Type: application/sdp >> Content-Length: 327 >> v=0 >> o=root 1639709788 1639709788 IN IP4 192.168.1.3 >> s=Asterisk PBX 1.6.2.18 >> c=IN IP4 192.168.1.3 >> t=0 0 >> m=audio 10072 RTP/AVP 0 3 8 101 >> a=rtpmap:0 PCMU/8000 >> a=rtpmap:3 GSM/8000 >> a=rtpmap:8 PCMA/8000 >> a=rtpmap:101 telephone-event/8000 >> a=fmtp:101 0-16 >> a=silenceSupp:off - - - - >> a=ptime:20 >> a=sendrecv >> a=nortpproxy:yes >> -----------200OK--------------- >> e90 >> ElE;pX4tSIP/2.0 200 OK >> Via: SIP/2.0/UDP >> >> >> >> 192.168.2.200:5062;rport=2788;received=175.138.21.31;branch=z9hG4bK2086380416 >> Record-Route: sip:192.168.1.3;lr=on;ftag=1796959074;nat=yes >> From: "101" sip:101@aextddns.dyndns.info;tag=1796959074 >> To: sip:102@aextddns.dyndns.info;tag=as2e4c0125 >> Call-ID: 1985782590@192.168.2.200 >> CSeq: 21 INVITE >> Server: Asterisk PBX 1.6.2.18 >> Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, >> NOTIFY, >> INFO >> Supported: replaces, timer >> Contact: sip:102@192.168.1.23:5080 >> Content-Type: application/sdp >> Content-Length: 286 >> v=0 >> o=root 403900934 403900934 IN IP4 192.168.1.23 >> s=Asterisk PBX 1.6.2.18 >> c=IN IP4 192.168.1.23 >> t=0 0 >> m=audio 14420 RTP/AVP 0 8 101 >> a=rtpmap:0 PCMU/8000 >> a=rtpmap:8 PCMA/8000 >> a=rtpmap:101 telephone-event/8000 >> a=fmtp:101 0-16 >> a=silenceSupp:off - - - - >> a=ptime:20 >> a=sendrecv >> ------------------------------------ >> My kamailio log. >> -----------LOG------------------ >> DEBUG: rtpproxy [rtpproxy_funcs.c:148]: type <application/sdp> >> found >> valid >> DEBUG: rtpproxy [rtpproxy.c:2188]: proxy reply: 10070 192.168.1.3 >> INFO: <script>: offer >> ------------------------------------- >> double force_rtp_proxy >> --------kamailio -> asterisk [INVITE]--------- >> Pyi-}E7V@:#pINVITE sip:102@aextddns.dyndns.info SIP/2.0 >> Record-Route: sip:192.168.1.3;lr=on;ftag=640933430;nat=yes >> Via: SIP/2.0/UDP 192.168.1.3;branch=z9hG4bK89a5.53e9f766.0 >> Via: SIP/2.0/UDP >> >> >> >> 192.168.2.200:5062;rport=2788;received=175.138.21.31;branch=z9hG4bK1673765648 >> From: "101" sip:101@aextddns.dyndns.info;tag=640933430 >> To: sip:102@aextddns.dyndns.info >> Call-ID: 1909950509@192.168.2.200 >> CSeq: 21 INVITE >> Contact: sip:101@175.138.21.31:2788 >> Content-Type: application/sdp >> Allow: INVITE, INFO, PRACK, ACK, BYE, CANCEL, OPTIONS, NOTIFY, >> REGISTER, >> SUBSCRIBE, REFER, PUBLISH, UPDATE, MESSAGE >> Max-Forwards: 69 >> User-Agent: T20 9.41.0.80 >> Allow-Events: talk,hold,conference,refer,check-sync >> Content-Length: 334 >> v=0 >> o=20073 20073 IN IP4 192.168.1.3192.168.1.3 >> s=SDP data >> c=IN IP4 192.168.1.3192.168.1.3 >> t=0 0 >> m=audio 1006410064 RTP/AVP 0 8 18 9 101 >> a=rtpmap:0 PCMU/8000 >> a=rtpmap:8 PCMA/8000 >> a=rtpmap:18 G729/8000 >> a=rtpmap:9 G722/8000 >> a=fmtp:101 0-15 >> a=rtpmap:101 telephone-event/8000 >> a=sendrecv >> a=nortpproxy:yes >> a=nortpproxy:yes >> -----------LOG------------------ >> DEBUG: rtpproxy [rtpproxy_funcs.c:148]: type <application/sdp> >> found >> valid >> DEBUG: rtpproxy [rtpproxy.c:2188]: proxy reply: 10068 192.168.1.3 >> DEBUG: rtpproxy [rtpproxy_funcs.c:148]: type <application/sdp> >> found >> valid >> DEBUG: rtpproxy [rtpproxy.c:2188]: proxy reply: 10068 192.168.1.3 >> INFO: <script>: offer >> -----------LOG------------------ >> >> -- >> Regards, >> >> MingHon
-- Carsten Bock http://www.ng-voice.com mailto:carsten@ng-voice.com
Schomburgstr. 80 22767 Hamburg Germany
Mobile +49 179 2021244 Office +49 40 34927219 Fax +49 40 34927220
-- Regards,
MingHon
-- Carsten Bock http://www.ng-voice.com mailto:carsten@ng-voice.com
Schomburgstr. 80 22767 Hamburg Germany
Mobile +49 179 2021244 Office +49 40 34927219 Fax +49 40 34927220
Checkout SIP-Provider CE: http://www.sipwise.com/products/spce/overview/
-- Regards,
MingHon
-- Carsten Bock http://www.ng-voice.com mailto:carsten@ng-voice.com
Schomburgstr. 80 22767 Hamburg Germany
Mobile +49 179 2021244 Office +49 40 34927219 Fax +49 40 34927220
Checkout SIP-Provider CE: http://www.sipwise.com/products/spce/overview/
-- Regards,
MingHon