Re: [SR-Users] RTPPROXY timeout patch.
Hi, Sorry for confusion: You will have to define a Timeout socket, when starting RTP-Proxy (-n, may be invalid): bock@bock-tde:~/ims/sr-rtpp/sip-router/modules/rtpproxy/test$ cat ./exec_rtpproxy.txt ./rtpproxy -T 10 -f -F -i -l 127.0.0.1 -s udp:*:2 -d DBUG -n tcp:127.0.0.1 Recent Versions of RTP-Proxy start a separate thread to process the timeouts; but only if the timeout socket is defined at startup. Then it should work. Good luck, Carsten P.S.: I will add some docs on howto make this work in the next days to GIT-Trunk. 2011/3/15 Alexandre Abreu : > Hello Carsten. > > Still no lucky. I just moved the whole rtpproxy/ directory into 3.1 branch > and recompiled and then changed my script to use > rtpproxy_offer()/rtpproxy_answer(). > > Look: > > Mar 15 14:04:38 devel rtpproxy[29111]: INFO:handle_command: new session > e2361a59b4588d51, tag ed382a18;1 requested, type strong > Mar 15 14:04:38 devel rtpproxy[29111]: INFO:handle_command: new session on a > port 44206 created, tag ed382a18;1 > Mar 15 14:04:38 devel rtpproxy[29111]: INFO:handle_command: pre-filling > caller's address with 192.168.200.114:6380 > Mar 15 14:04:39 devel kamailio[29544]: NOTICE: acc [acc.c:275]: ACC: > transaction answered: > timestamp=1300208679;method=INVITE;from_tag=ed382a18;to_tag=19477c42;call_id > =e2361a59b4588d51;code=200;reason=OK; > Mar 15 14:04:39 devel rtpproxy[29111]: INFO:handle_command: lookup on ports > 44206/41680, session timer restarted > Mar 15 14:04:39 devel rtpproxy[29111]: INFO:handle_command: setting custom > timeout handler (xmlrpc:http://localhost:8000/RPC2) > Mar 15 14:04:39 devel rtpproxy[29111]: INFO:handle_command: pre-filling > callee's address with 192.168.200.149:9494 > Mar 15 14:04:50 devel rtpproxy[29111]: INFO:process_rtp: session timeout > Mar 15 14:04:50 devel rtpproxy[29111]: INFO:remove_session: RTP stats: 963 > in from callee, 10 in from caller, 973 relayed, 0 dropped > Mar 15 14:04:50 devel rtpproxy[29111]: INFO:remove_session: RTCP stats: 5 in > from callee, 1 in from caller, 6 relayed, 0 dropped > Mar 15 14:04:50 devel rtpproxy[29111]: INFO:remove_session: session on ports > 44206/41680 is cleaned up > > Started with: > rtpproxy -T 10 -F -i -l 192.168.200.90 -s udp:127.0.0.1:7722 -n > tcp:192.168.200.90:8000 -d DBUG > > SIP-ROUTER config: > # - rtpproxy params - > modparam("rtpproxy", "rtpproxy_sock", "udp:localhost:7722") > modparam("rtpproxy", "rtpproxy_tout", 3) > modparam("rtpproxy", "timeout_socket", "xmlrpc:http://localhost:8000/RPC2";) > > # The Port for incoming XML-RPC requests > modparam("mi_xmlrpc", "port", 8000) > modparam("mi_xmlrpc", "reply_option", 1) > modparam("mi_xmlrpc", "buffer_size", 8192) > modparam("mi_xmlrpc", "log_file", "/tmp/openser_xmlrpc") > > The session keeps active after the RTPPROXY proxy timeout. It seems > dlg_terminate_dlg isn't being triggered. Am I missing something else beyond > moving rtpproxy/ directory? > As this thread is a user-question, I am copying SR-USERS mail list. I am > also using xmlrpc-c-1.06.41. > > Thanks, > Alexandre. > > -Mensagem original- > De: kaiserbo...@googlemail.com [mailto:kaiserbo...@googlemail.com] Em nome > de Carsten Bock > Enviada em: terça-feira, 15 de março de 2011 05:15 > Para: Alexandre Abreu > Assunto: Re: RTPPROXY timeout patch. > > Hi Alexandre, > > sorry, yes, your correct. My changes are not in the 3.1 branch, but only > GIT-Master. Only the GIT-Master currently holds the correct patch and > config. > I will need to backport the changes from the master... (will do so this > week). > > Carsten > > 2011/3/14 Alexandre Abreu : >> Hello Carsten, >> >> Let me ask you a question: >> >> If "First is important to clarify: from version 3.0.0 on, Kamailio and >> SER are identical in terms of source code.", then why your changes >> does not reflect in kamailio 3.1 from GIT? >> I did see the changes by getting the SIP-ROUTER from GIT. Kamailio 3.1 >> from GIT does not have your code. >> >> Thanks. >> Alexandre >> >> -Mensagem original- >> De: kaiserbo...@googlemail.com [mailto:kaiserbo...@googlemail.com] Em >> nome de Carsten Bock Enviada em: segunda-feira, 14 de março de 2011 >> 05:31 >> Para: Alexandre Abreu >> Cc: RTPproxy Development >> Assunto: Re: RTPPROXY timeout patch. >> >> Hello, >> >> i hope, you had a nice weekend... ;-) >> Are you sure, you are using the GIT-Version of the >> Kamailio/sip-router.org config? >> In the GIT version it is now: >> >> modparam("rtpproxy", "timeout_socket", >> "xmlrpc:http://localhost:8000/RPC2";) >> >> http://git.sip-router.org/cgi-bin/gitweb.cgi?p=sip-router;a=blob;f=mod >> ules/r >> tpproxy/test/kamailio.cfg;h=0d5c73ff2065f33f262981fba2c07e65496e7415;h >> b=HEAD >> >> This should work (as tested by me). >> >> Carsten >> >> 2011/3/11 Alexandre Abreu : >>> Hello Carsten, >>> >>> The patch was applied just fine but I can't get that feature working. >>> See >>> below: >>> >>> [root@devel log]# rtpproxy -v >>> Basic version: 20040107 >>> Extension 20050
Re: [SR-Users] RTPPROXY timeout patch.
Hi Alexandre, i don't have a clue, what is going wrong there. The timeout socket, you provide, must not necessarily point to the Kamailio-XML-RPC-Port, in my test-cases it just pointed anywhere... (i hope it does not mess up the XML-RPC Process of Kamailio if you connect there and do nothing). I am a little short in time at the moment, so i have just tar'ed the local RTP-Proxy i used for the development, so maybe you can test it, If it works with my version of RTP-Proxy, i will have to check why Carsten 2011/3/16 Alexandre Abreu : > Hello Carsten, > > If you use "-n tcp:127.0.0.1" without port you get: > > [root@devel ~]# rtpproxy -T 10 -F -i -l 192.168.200.90 -s udp:127.0.0.1 7722 > -n tcp:127.0.0.1 -d DBUG > rtpproxy: can't parse host:port in TCP address > rtpproxy: can't start notification thread > > As I wrote in my previous mail, I am using "-n tcp:192.168.200.90:8000" > which points to the address that XMLRPC server is listening to. > > tcp 0 0 0.0.0.0:8000 0.0.0.0:* > LISTEN 3661/kamailio > > What I am missing here? > > Thanks, > Alexandre. > > -Mensagem original- > De: kaiserbo...@googlemail.com [mailto:kaiserbo...@googlemail.com] Em nome > de Carsten Bock > Enviada em: quarta-feira, 16 de março de 2011 09:00 > Para: Alexandre Abreu > Cc: sr-users@lists.sip-router.org > Assunto: Re: RTPPROXY timeout patch. > > Hi, > > Sorry for confusion: > You will have to define a Timeout socket, when starting RTP-Proxy (-n, > may be invalid): > > bock@bock-tde:~/ims/sr-rtpp/sip-router/modules/rtpproxy/test$ cat > ./exec_rtpproxy.txt > ./rtpproxy -T 10 -f -F -i -l 127.0.0.1 -s udp:*:2 -d DBUG -n > tcp:127.0.0.1 > > Recent Versions of RTP-Proxy start a separate thread to process the > timeouts; but only if the timeout socket is defined at startup. > Then it should work. > > Good luck, > Carsten > > P.S.: I will add some docs on howto make this work in the next days to > GIT-Trunk. > 2011/3/15 Alexandre Abreu : >> Hello Carsten. >> >> Still no lucky. I just moved the whole rtpproxy/ directory into 3.1 branch >> and recompiled and then changed my script to use >> rtpproxy_offer()/rtpproxy_answer(). >> >> Look: >> >> Mar 15 14:04:38 devel rtpproxy[29111]: INFO:handle_command: new session >> e2361a59b4588d51, tag ed382a18;1 requested, type strong >> Mar 15 14:04:38 devel rtpproxy[29111]: INFO:handle_command: new session on > a >> port 44206 created, tag ed382a18;1 >> Mar 15 14:04:38 devel rtpproxy[29111]: INFO:handle_command: pre-filling >> caller's address with 192.168.200.114:6380 >> Mar 15 14:04:39 devel kamailio[29544]: NOTICE: acc [acc.c:275]: ACC: >> transaction answered: >> > timestamp=1300208679;method=INVITE;from_tag=ed382a18;to_tag=19477c42;call_id >> =e2361a59b4588d51;code=200;reason=OK; >> Mar 15 14:04:39 devel rtpproxy[29111]: INFO:handle_command: lookup on > ports >> 44206/41680, session timer restarted >> Mar 15 14:04:39 devel rtpproxy[29111]: INFO:handle_command: setting custom >> timeout handler (xmlrpc:http://localhost:8000/RPC2) >> Mar 15 14:04:39 devel rtpproxy[29111]: INFO:handle_command: pre-filling >> callee's address with 192.168.200.149:9494 >> Mar 15 14:04:50 devel rtpproxy[29111]: INFO:process_rtp: session timeout >> Mar 15 14:04:50 devel rtpproxy[29111]: INFO:remove_session: RTP stats: 963 >> in from callee, 10 in from caller, 973 relayed, 0 dropped >> Mar 15 14:04:50 devel rtpproxy[29111]: INFO:remove_session: RTCP stats: 5 > in >> from callee, 1 in from caller, 6 relayed, 0 dropped >> Mar 15 14:04:50 devel rtpproxy[29111]: INFO:remove_session: session on > ports >> 44206/41680 is cleaned up >> >> Started with: >> rtpproxy -T 10 -F -i -l 192.168.200.90 -s udp:127.0.0.1:7722 -n >> tcp:192.168.200.90:8000 -d DBUG >> >> SIP-ROUTER config: >> # - rtpproxy params - >> modparam("rtpproxy", "rtpproxy_sock", "udp:localhost:7722") >> modparam("rtpproxy", "rtpproxy_tout", 3) >> modparam("rtpproxy", "timeout_socket", > "xmlrpc:http://localhost:8000/RPC2";) >> >> # The Port for incoming XML-RPC requests >> modparam("mi_xmlrpc", "port", 8000) >> modparam("mi_xmlrpc", "reply_option", 1) >> modparam("mi_xmlrpc", "buffer_size", 8192) >> modparam("mi_xmlrpc", "log_file", "/tmp/openser_xmlrpc") >> >> The session keeps active after the RTPPROXY proxy timeout. It seems >> dlg_terminate_dlg isn't being triggered. Am I missing something else > beyond >> moving rtpproxy/ directory? >> As this thread is a user-question, I am copying SR-USERS mail list. I am >> also using xmlrpc-c-1.06.41. >> >> Thanks, >> Alexandre. >> >> -Mensagem original- >> De: kaiserbo...@googlemail.com [mailto:kaiserbo...@googlemail.com] Em nome >> de Carsten Bock >> Enviada em: terça-feira, 15 de março de 2011 05:15 >> Para: Alexandre Abreu >> Assunto: Re: RTPPROXY timeout patch. >> >> Hi Alexandre, >> >> sorry, yes, your correct. My changes are not in the 3.1 branch, but only >> GIT-Master. Only the GIT-Master currently holds the correct patch and >> config. >> I will n
Re: [SR-Users] RTPPROXY timeout patch.
Hi Alexandre, That is strange: I run the RTP-Proxy like this (directly from the TAR-File, i sent you) and Kamailio with attached config-file. bock@bock-tde:~/ims/rtpproxy$ sudo ./rtpproxy -T 10 -f -F -i -l 127.0.0.1 -s udp:*:2 -d DBUG -n tcp:127.0.0.1 rtpproxy: Timer started. INFO:main: rtpproxy started, pid 4203 [... Kamailio connects to RTP-Proxy...] DBUG:handle_command: received command "4259_8 UAc98,97,99,104,3,0,8,9,96 56f0f83a-5373-46a1-b6f6-9ce2f93e68d5 195.71.4.203 4008 5371f039-40d0-4944-aae7-6f75071a2f8c;1" INFO:handle_command: new session 56f0f83a-5373-46a1-b6f6-9ce2f93e68d5, tag 5371f039-40d0-4944-aae7-6f75071a2f8c;1 requested, type strong INFO:handle_command: new session on a port 45508 created, tag 5371f039-40d0-4944-aae7-6f75071a2f8c;1 INFO:handle_command: pre-filling caller's address with 195.71.4.203:4008 DBUG:doreply: sending reply "4259_8 45508 127.0.0.1 " DBUG:handle_command: received command "4259_9 LAc98,96 56f0f83a-5373-46a1-b6f6-9ce2f93e68d5 195.71.4.203 4000 5371f039-40d0-4944-aae7-6f75071a2f8c;1 9915df0c-30fc-49c5-aa8a-c86b4242c094;1 xmlrpc:http://localhost:8000/RPC2"; INFO:handle_command: lookup on ports 45508/45238, session timer restarted INFO:handle_command: setting custom timeout handler (xmlrpc:http://localhost:8000/RPC2) INFO:handle_command: pre-filling callee's address with 195.71.4.203:4000 DBUG:doreply: sending reply "4259_9 45238 127.0.0.1 " INFO:process_rtp: session timeout ERR:rtpp_notify_schedule: XMLRPC xmlrpc:http://localhost:8000/RPC2 INFO:remove_session: RTP stats: 0 in from callee, 0 in from caller, 0 relayed, 0 dropped INFO:remove_session: RTCP stats: 0 in from callee, 0 in from caller, 0 relayed, 0 dropped INFO:remove_session: session on ports 45508/45238 is cleaned up ERR:do_timeout_notification: Timeout socket: xmlrpc:http://localhost:8000/RPC2 And it works for me: U 2011/03/16 16:50:14.350721 127.0.0.1:5060 -> 127.0.0.1:15061 BYE sip:2@127.0.0.1:15061;ob SIP/2.0. Via: SIP/2.0/UDP 127.0.0.1;branch=z9hG4bK06e9.245e2dd7.0. To: sip:2@localhost;tag=5371f039-40d0-4944-aae7-6f75071a2f8c. From: sip:1@localhost;tag=9915df0c-30fc-49c5-aa8a-c86b4242c094. CSeq: 7905 BYE. Call-ID: 56f0f83a-5373-46a1-b6f6-9ce2f93e68d5. Content-Length: 0. User-Agent: kamailio (3.2.0-dev2 (x86_64/linux)). Max-Forwards: 70. . U 2011/03/16 16:50:14.350801 127.0.0.1:5060 -> 127.0.0.1:15060 BYE sip:1@127.0.0.1:15060;transport=UDP;ob SIP/2.0. Via: SIP/2.0/UDP 127.0.0.1;branch=z9hG4bK06e9.345e2dd7.0. To: sip:1@localhost;tag=9915df0c-30fc-49c5-aa8a-c86b4242c094. From: sip:2@localhost;tag=5371f039-40d0-4944-aae7-6f75071a2f8c. CSeq: 7905 BYE. Call-ID: 56f0f83a-5373-46a1-b6f6-9ce2f93e68d5. Content-Length: 0. User-Agent: kamailio (3.2.0-dev2 (x86_64/linux)). Max-Forwards: 70. . [...] Maybe, you can add some more debug-info from RTP-Proxy... And can you verify, that the RTP-Proxy is not trying to send the request? Kind regards, Carsten 2011/3/16 Alexandre Abreu : > Hi Carsten, > > Even with your RTPPROXY tarball I was unable to get this working. Session > remains after RTPPROXY timeout. > I am using KAMAILIO 3.1 branch from GIT and as I told you, I moved the > rtpproxy/ from GIT-MASTER to the Kamailio branch (waiting your backport). Is > there anything else regarding this feature that should also should be moved > (beyond rtpproxy/)? > > Thanks, > Alexandre > -- Carsten Bock http://www.ng-voice.com mailto:cars...@ng-voice.com kamailio.cfg Description: Binary data ___ 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
Re: [SR-Users] RTPPROXY timeout patch.
Hi Alexandre, My version of RTP-Proxy is following: bock@bock-tde:~/ims/rtpproxy$ ./rtpproxy -v Basic version: 20040107 Extension 20050322: Support for multiple RTP streams and MOH Extension 20060704: Support for extra parameter in the V command Extension 20071116: Support for RTP re-packetization Extension 20071218: Support for forking (copying) RTP stream Extension 20080403: Support for RTP statistics querying Extension 20081102: Support for setting codecs in the update/lookup command Extension 20081224: Support for session timeout notifications Extension 20090810: Support for automatic bridging Extension 20100819: Support for timeout notifications using XML-RPC towards Kamailio/sip-router.org Please find attached a modified rtpp_notify.c file. I have just added some tiny debug output in order to see some points. Now you should see the following Debug-Outputs: rtpproxy: >>> Running Timeout-Process Then the notifier process is running. That would be good. If not, that's the reason why it is not working. When the request comes in, you should see the following: INFO:handle_command: setting custom timeout handler (xmlrpc:http://localhost:8000/RPC2) Then the Timeout-Socket was properly set, that would be good as well. Now the timeout: INFO:process_rtp: session timeout [...] ERR:do_timeout_notification: Timeout socket is: xmlrpc:http://localhost:8000/RPC2 That would be great, because then the Timeout towards the Kamailio should be triggerd. If these parts are ok, then there must be some issue either in the XML-RPC client library or in the communication between the RTP-Proxy and Kamailio. I hope you did a trace on the XML-RPC Port both on the RTPproxy and on the Kamailio? What distro are you using? My tests were only on Ubuntu and Debian, which are quite similar. Hope we find this issue, Kind regards, Carsten P.S.: I think i removed that check for the port for testing, that's why my version accepted the socket without port... (now i'm using "-n tcp:127.0.0.1:") 2011/3/16 Alexandre Abreu : > Carsten, > > Indeed. Very strange. > > Are we running the same RTPPROXY version? How can you start using '-n > tcp:127.0.0.1' without specifying a port? > > [root@devel rtpproxy-carsten]# ./rtpproxy -T 10 -f -F -i -l 192.168.200.90 > -s udp:*:7722 -d DBUG ERR INFO -n tcp:127.0.0.1 > rtpproxy: can't parse host:port in TCP address > rtpproxy: can't start notification thread > > [root@devel rtpproxy-carsten]# ./rtpproxy -T 10 -f -F -i -l 192.168.200.90 > -s udp:*:7722 -d DBUG ERR INFO -n tcp:127.0.0.1:7723 > INFO:main: rtpproxy started, pid 21169 > > DBUG:handle_command: received command "17828_9 Uc0,8,101 4b10ce04de4f8818 > 192.168.200.114 6380 9c4b6265;1" > INFO:handle_command: new session 4b10ce04de4f8818, tag 9c4b6265;1 requested, > type strong > INFO:handle_command: new session on a port 43750 created, tag 9c4b6265;1 > INFO:handle_command: pre-filling caller's address with 192.168.200.114:6380 > DBUG:doreply: sending reply "17828_9 43750 192.168.200.90 > " > DBUG:handle_command: received command "17847_9 Lc0,8,101 4b10ce04de4f8818 > 192.168.200.149 7386 9c4b6265;1 dd69ab1d;1 > xmlrpc:http://localhost:8000/RPC2"; > INFO:handle_command: lookup on ports 43750/55796, session timer restarted > INFO:handle_command: setting custom timeout handler > (xmlrpc:http://localhost:8000/RPC2) > INFO:handle_command: pre-filling callee's address with 192.168.200.149:7386 > DBUG:doreply: sending reply "17847_9 55796 192.168.200.90 > " > INFO:process_rtp: session timeout > INFO:remove_session: RTP stats: 548 in from callee, 5 in from caller, 553 > relayed, 0 dropped > INFO:remove_session: RTCP stats: 3 in from callee, 1 in from caller, 4 > relayed, 0 dropped > INFO:remove_session: session on ports 43750/55796 is cleaned up > DBUG:reconnect_timeout_handler: reconnecting timeout socket > ERR:reconnect_timeout_handler: can't create timeout socket: Address family > not supported by protocol > ERR:do_timeout_notification: unable to send timeout notification > > Above the error message. > > [root@devel ~]# md5sum rtpproxy-carsten.tar.gz > c02b1e2ac57d39562e86bcfc4ee592b8 rtpproxy-carsten.tar.gz > > Thanks, > Alexandre. > > -Mensagem original- > De: kaiserbo...@googlemail.com [mailto:kaiserbo...@googlemail.com] Em nome > de Carsten Bock > Enviada em: quarta-feira, 16 de março de 2011 13:03 > Para: Alexandre Abreu > Cc: sr-users@lists.sip-router.org > Assunto: Re: RTPPROXY timeout patch. > > Hi Alexandre, > > That is strange: > > I run the RTP-Proxy like this (directly from the TAR-File, i sent you) > and Kamailio with attached config-file. > > bock@bock-tde:~/ims/rtpproxy$ sudo ./rtpproxy -T 10 -f -F -i -l > 127.0.0.1 -s udp:*:2 -d DBUG -n tcp:127.0.0.1 > rtpproxy: Timer started. > INFO:main: rtpproxy started, pid 4203 > [... Kamailio connects to RTP-Proxy...] > DBUG:handle_command: received command "4259_8 > UAc98,97,99,104,3,0,8,9,96 56f0f83a-5373-46a1-b6f6-9ce2f93e68d5 > 195.71.4.203 4008 5371f039-40d0-4944-aae7-6f75
Re: [SR-Users] RTPPROXY timeout patch.
Hi, that is a general Kamailio question. I think it should work like this: local_route { [... do whatever you like here ...] } (a route for locally generated requests). Carsten 2011/3/17 Alexandre Abreu : > Hi Carsten, > > Thank you very much. Finally it is working now. > Quick question: how do you account the BYE sent by the proxy? Since the BYE > itself does not transverse the script... > > Thanks, > Alexandre > -- Carsten Bock http://www.ng-voice.com mailto:cars...@ng-voice.com ___ 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
Re: [SR-Users] RTPPROXY timeout patch.
Hi Alexandre, it seem to be a general RTP-Proxy/PThread issue. It seems not to be related to the XML-RPC notification; the thread, which processes the timeouts, seems to waits forever... I will check... Carsten 2011/3/21 Alexandre Abreu : > Hi Carsten, > > After more testing, I just realized that the notification works only if I > use "-f" parameter in RTPPROXY. If I omit this parameter (to run in > background mode), the session timeout but there's no notification sent > (BYE). Why's that? > > Thanks, > Alexandre. > > -Mensagem original- > De: Alexandre Abreu [mailto:alexandre.ab...@redt.com.br] > Enviada em: quarta-feira, 16 de março de 2011 14:41 > Para: 'Carsten Bock' > Cc: 'sr-users@lists.sip-router.org' > Assunto: RES: RTPPROXY timeout patch. > > Carsten, > > Here it goes: > > [root@devel rtpproxy-carsten]# ./rtpproxy -T 10 -f -F -i -l 192.168.200.90 > -s udp:*:7722 -d DBUG ERR INFO -n tcp:127.0.0.1:7723 > INFO:main: rtpproxy started, pid 22495 > rtpproxy: >>> Running Timeout-Process > > DBUG:handle_command: received command "22428_8 Uc0,8,101 080b5d23d1603667 > 192.168.200.114 6380 0073852a;1" > INFO:handle_command: new session 080b5d23d1603667, tag 0073852a;1 requested, > type strong > INFO:handle_command: new session on a port 48662 created, tag 0073852a;1 > INFO:handle_command: pre-filling caller's address with 192.168.200.114:6380 > DBUG:doreply: sending reply "22428_8 48662 192.168.200.90" > DBUG:handle_command: received command "22436_8 Lc0,8,101 080b5d23d1603667 > 192.168.200.149 7614 0073852a;1 c758967a;1 > xmlrpc:http://127.0.0.1:8000/RPC2"; > INFO:handle_command: lookup on ports 48662/58604, session timer restarted > INFO:handle_command: setting custom timeout handler > (xmlrpc:http://127.0.0.1:8000/RPC2) > INFO:handle_command: pre-filling callee's address with 192.168.200.149:7614 > DBUG:doreply: sending reply "22436_8 58604 192.168.200.90" > INFO:process_rtp: session timeout > INFO:remove_session: RTP stats: 982 in from callee, 4 in from caller, 986 > relayed, 0 dropped > INFO:remove_session: RTCP stats: 5 in from callee, 1 in from caller, 6 > relayed, 0 dropped > INFO:remove_session: session on ports 48662/58604 is cleaned up > ERR:do_timeout_notification: Timeout socket is: èîÈÄÐÊ@ÍÈÄÈÄ`ê > DBUG:reconnect_timeout_handler: reconnecting timeout socket > ERR:reconnect_timeout_handler: can't create timeout socket: Address family > not supported by protocol > ERR:do_timeout_notification: unable to send timeout notification > > Very weird chars in the debug of what Timeout socket is... > > But the custom timeout handler are being printed correctly from the config > file. > INFO:handle_command: setting custom timeout handler > (xmlrpc:http://127.0.0.1:8000/RPC2) > Here I am running CentOS 5.2 32-bit. > > Thanks, > Alexandre > > -Mensagem original- > De: kaiserbo...@googlemail.com [mailto:kaiserbo...@googlemail.com] Em nome > de Carsten Bock Enviada em: quarta-feira, 16 de março de 2011 14:18 > Para: Alexandre Abreu > Cc: sr-users@lists.sip-router.org > Assunto: Re: RTPPROXY timeout patch. > > Hi Alexandre, > > My version of RTP-Proxy is following: > > bock@bock-tde:~/ims/rtpproxy$ ./rtpproxy -v Basic version: 20040107 > Extension 20050322: Support for multiple RTP streams and MOH Extension > 20060704: Support for extra parameter in the V command Extension 20071116: > Support for RTP re-packetization Extension 20071218: Support for forking > (copying) RTP stream Extension 20080403: Support for RTP statistics querying > Extension 20081102: Support for setting codecs in the update/lookup command > Extension 20081224: Support for session timeout notifications Extension > 20090810: Support for automatic bridging Extension 20100819: Support for > timeout notifications using XML-RPC towards Kamailio/sip-router.org > > Please find attached a modified rtpp_notify.c file. I have just added some > tiny debug output in order to see some points. > Now you should see the following Debug-Outputs: > > rtpproxy: >>> Running Timeout-Process > > Then the notifier process is running. That would be good. If not, that's the > reason why it is not working. When the request comes in, you should see the > following: > > INFO:handle_command: setting custom timeout handler > (xmlrpc:http://localhost:8000/RPC2) > > Then the Timeout-Socket was properly set, that would be good as well. > Now the timeout: > > INFO:process_rtp: session timeout > [...] > ERR:do_timeout_notification: Timeout socket is: > xmlrpc:http://localhost:8000/RPC2 > > That would be great, because then the Timeout towards the Kamailio should be > triggerd. > If these parts are ok, then there must be some issue either in the XML-RPC > client library or in the communication between the RTP-Proxy and Kamailio. I > hope you did a trace on the XML-RPC Port both on the RTPproxy and on the > Kamailio? What distro are you using? My tests were only on Ubuntu and > Debian, which are quite similar. > > Hope we find this issue, > > Kind regards, >
Re: [SR-Users] RTPPROXY timeout patch.
Hi Alexandre, it took quite a lot of searching, but now it's done. It was a general RTPProxy/PThread issue. The problem seems to be, that the PThread is created before the fork of the main process. Then the Thread waits forever... Attached an changed main.c + rtpp_defines.h which modifies this behaviour and starts the Thread after the fork. I will create an according patch and send it to the RTPProxy-Dev-Mailinglist as well. Have fun, Carsten -- Carsten Bock http://www.ng-voice.com mailto:cars...@ng-voice.com /* * Copyright (c) 2004-2006 Maxim Sobolev * Copyright (c) 2006-2007 Sippy Software, Inc., http://www.sippysoft.com * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright *notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright *notice, this list of conditions and the following disclaimer in the *documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "rtp.h" #include "rtp_resizer.h" #include "rtp_server.h" #include "rtpp_defines.h" #include "rtpp_command.h" #include "rtpp_command_async.h" #include "rtpp_log.h" #include "rtpp_record.h" #include "rtpp_session.h" #include "rtpp_network.h" #include "rtpp_notify.h" #include "rtpp_util.h" static const char *cmd_sock = CMD_SOCK; static const char *pid_file = PID_FILE; static rtpp_log_t glog; static void usage(void); static void send_packet(struct cfg *, struct rtpp_session *, int, struct rtp_packet *); static void usage(void) { fprintf(stderr, "usage: rtpproxy [-2fvFiPa] [-l addr1[/addr2]] " "[-6 addr1[/addr2]] [-s path]\n\t[-t tos] [-r rdir [-S sdir]] [-T ttl] " "[-L nfiles] [-m port_min]\n\t[-M port_max] [-u uname[:gname]] " "[-n timeout_socket] [-d log_level[:log_facility]]\n"); exit(1); } static void fatsignal(int sig) { rtpp_log_write(RTPP_LOG_INFO, glog, "got signal %d", sig); exit(0); } static void ehandler(void) { unlink(cmd_sock); unlink(pid_file); rtpp_log_write(RTPP_LOG_INFO, glog, "rtpproxy ended"); rtpp_log_close(glog); } static void init_config(struct cfg *cf, int argc, char **argv) { int ch, i; char *bh[2], *bh6[2], *cp; const char *errmsg; struct passwd *pp; struct group *gp; bh[0] = bh[1] = bh6[0] = bh6[1] = NULL; cf->stable.port_min = PORT_MIN; cf->stable.port_max = PORT_MAX; cf->stable.max_ttl = SESSION_TIMEOUT; cf->stable.tos = TOS; cf->stable.rrtcp = 1; cf->stable.ttl_mode = TTL_UNIFIED; cf->stable.log_level = -1; cf->stable.log_facility = -1; cf->stable.timeout_socket = NULL; pthread_mutex_init(&cf->glock, NULL); if (getrlimit(RLIMIT_NOFILE, &(cf->stable.nofile_limit)) != 0) err(1, "getrlimit"); while ((ch = getopt(argc, argv, "vf2Rl:6:s:S:t:r:p:T:L:m:M:u:Fin:Pad:")) != -1) switch (ch) { case 'f': cf->stable.nodaemon = 1; break; case 'l': bh[0] = optarg; bh[1] = strchr(bh[0], '/'); if (bh[1] != NULL) { *bh[1] = '\0'; bh[1]++; cf->stable.bmode = 1; } break; case '6': bh6[0] = optarg; bh6[1] = strchr(bh6[0], '/'); if (bh6[1] != NULL) { *bh6[1] = '\0'; bh6[1]++; cf->stable.bmode = 1; } break; case 's': if (strncmp("udp:", optarg, 4) == 0) { cf->stable.umode = 1; optarg += 4; } else if (strncmp("udp6:", optarg, 5) == 0) { cf->stable.umode = 6; optarg += 5; } else if (strncmp("unix:", optarg, 5) == 0) { cf->stable.umode = 0; optarg += 5; } cmd_sock = optarg; break; case 't': cf->stable.tos = atoi(optarg); if (cf->stable.tos > 255) errx(1, "%d: TOS is too large", cf->stable.tos); break; case '2': cf->stable.dmode = 1
Re: [SR-Users] RTPPROXY timeout patch.
Hi all, by the way, the RTPProxy-Repository already contains a fix for this: author sobomax Sun, 27 Feb 2011 03:26:31 + (19:26 -0800) Move initialization of the notification thread after the rtpp_daemon() call. Threads started before fork(2) may not remain running afterwards. Reported by:Razvan Crainea http://sippy.git.sourceforge.net/git/gitweb.cgi?p=sippy/rtpproxy;a=commit;h=4b967a5602d8678c413e3699dda78c282a0018e5 So my patch is obsolete. Kind regards, Carsten 2011/3/22 Alexandre Abreu : > Hi Carsten, > > Patch applied. It works now. > > Thanks, > Alexandre. > > -Mensagem original- > De: kaiserbo...@googlemail.com [mailto:kaiserbo...@googlemail.com] Em nome > de Carsten Bock > Enviada em: terça-feira, 22 de março de 2011 08:00 > Para: Alexandre Abreu > Cc: sr-users@lists.sip-router.org; RTPproxy Development > Assunto: Re: RTPPROXY timeout patch. > > Hi Alexandre, > > it took quite a lot of searching, but now it's done. It was a general > RTPProxy/PThread issue. > The problem seems to be, that the PThread is created before the fork > of the main process. Then the Thread waits forever... > > Attached an changed main.c + rtpp_defines.h which modifies this > behaviour and starts the Thread after the fork. > I will create an according patch and send it to the > RTPProxy-Dev-Mailinglist as well. > > Have fun, > Carsten > > > 2011/3/22 Carsten Bock : >> Hi Alexandre, >> >> it seem to be a general RTP-Proxy/PThread issue. It seems not to be >> related to the XML-RPC notification; the thread, which processes the >> timeouts, seems to waits forever... I will check... >> >> Carsten >> >> 2011/3/21 Alexandre Abreu : >>> Hi Carsten, >>> >>> After more testing, I just realized that the notification works only if I >>> use "-f" parameter in RTPPROXY. If I omit this parameter (to run in >>> background mode), the session timeout but there's no notification sent >>> (BYE). Why's that? >>> >>> Thanks, >>> Alexandre. >>> >>> -Mensagem original- >>> De: Alexandre Abreu [mailto:alexandre.ab...@redt.com.br] >>> Enviada em: quarta-feira, 16 de março de 2011 14:41 >>> Para: 'Carsten Bock' >>> Cc: 'sr-users@lists.sip-router.org' >>> Assunto: RES: RTPPROXY timeout patch. >>> >>> Carsten, >>> >>> Here it goes: >>> >>> [root@devel rtpproxy-carsten]# ./rtpproxy -T 10 -f -F -i -l > 192.168.200.90 >>> -s udp:*:7722 -d DBUG ERR INFO -n tcp:127.0.0.1:7723 >>> INFO:main: rtpproxy started, pid 22495 >>> rtpproxy: >>> Running Timeout-Process >>> >>> DBUG:handle_command: received command "22428_8 Uc0,8,101 080b5d23d1603667 >>> 192.168.200.114 6380 0073852a;1" >>> INFO:handle_command: new session 080b5d23d1603667, tag 0073852a;1 > requested, >>> type strong >>> INFO:handle_command: new session on a port 48662 created, tag 0073852a;1 >>> INFO:handle_command: pre-filling caller's address with > 192.168.200.114:6380 >>> DBUG:doreply: sending reply "22428_8 48662 192.168.200.90" >>> DBUG:handle_command: received command "22436_8 Lc0,8,101 080b5d23d1603667 >>> 192.168.200.149 7614 0073852a;1 c758967a;1 >>> xmlrpc:http://127.0.0.1:8000/RPC2"; >>> INFO:handle_command: lookup on ports 48662/58604, session timer restarted >>> INFO:handle_command: setting custom timeout handler >>> (xmlrpc:http://127.0.0.1:8000/RPC2) >>> INFO:handle_command: pre-filling callee's address with > 192.168.200.149:7614 >>> DBUG:doreply: sending reply "22436_8 58604 192.168.200.90" >>> INFO:process_rtp: session timeout >>> INFO:remove_session: RTP stats: 982 in from callee, 4 in from caller, 986 >>> relayed, 0 dropped >>> INFO:remove_session: RTCP stats: 5 in from callee, 1 in from caller, 6 >>> relayed, 0 dropped >>> INFO:remove_session: session on ports 48662/58604 is cleaned up >>> ERR:do_timeout_notification: Timeout socket is: èîÈÄÐÊ@ÍÈÄÈÄ`ê >>> DBUG:reconnect_timeout_handler: reconnecting timeout socket >>> ERR:reconnect_timeout_handler: can't create timeout socket: Address > family >>> not supported by protocol >>> ERR:do_timeout_notification: unable to send timeout notification >>> >>> Very weird chars in the debug of what Timeout socket is... >>> >>> But the custom timeout handler are being printed correctly from the > config >>> file. >>> INFO:handle_command: setting custom timeout handler >>> (xmlrpc:http://127.0.0.1:8000/RPC2) >>> Here I am running CentOS 5.2 32-bit. >>> >>> Thanks, >>> Alexandre >>> >>> -Mensagem original- >>> De: kaiserbo...@googlemail.com [mailto:kaiserbo...@googlemail.com] Em > nome >>> de Carsten Bock Enviada em: quarta-feira, 16 de março de 2011 14:18 >>> Para: Alexandre Abreu >>> Cc: sr-users@lists.sip-router.org >>> Assunto: Re: RTPPROXY timeout patch. >>> >>> Hi Alexandre, >>> >>> My version of RTP-Proxy is following: >>> >>> bock@bock-tde:~/ims/rtpproxy$ ./rtpproxy -v Basic version: 20040107 >>> Extension 20050322: Support for multiple RTP streams and MOH Extension >>> 20060704: Support for extra parameter in the V command Extension > 20071116: >>> Support for RTP re-packetization Extension 2