[OpenSIPS-Users] SIP fork and APNS
Hi all, I hope to realize a scenario as follows. Several users register with the same SIP ID. When someone calls the SIP ID, all the users will receive the INVITE request. Such SIP forking is supported by OpenSIPS. However, in my scenario, we have some users registering via iOS app. Thus, these users may be in the iOS background mode. In this case, they are unable to register and I need to employ APNS to try to let these users in the iOS foreground mode. Consider some users are already online and some are in the iOS background mode. SIP forking will send INVITE to only the online users and will not send to those users who register after entering iOS foreground mode from iOS background mode. In other words, SIP forking will not send INVITE to those users registering with the same SIP later than the INVITE was received by the SIP server. Has anyone encounter any issue like this? Any comment is greatly appreciated. Best regards, Chen-Che -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/SIP-fork-and-APNS-tp7599789.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] What database table keeps the online users?
Hi Rodrigo, The location table keeps tracks of online users. Best wishes, Chen-Che -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/What-database-table-keeps-the-online-users-tp7599193p7599195.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
[OpenSIPS-Users] Multiple sockets and force_send_socket
Hi all, In my testing environment, I have one SIP outbound proxy and one internal SIP server. The SIP outbound proxy listens tls:172.16.1.1:5061, udp:172.16.1.1:5060, and udp:10.1.1.1:5060 while the SIP server listens on udp:10.1.1.2:5060. For the SIP outbound proxy, tls:172.16.1.1:5061 and udp:172.16.1.1:5060 are used for receiving SIP messages from outside clients and udp:10.1.1.1:5060 is used for communicating with the internal SIP server. When receiving an INVITE from a caller, the SIP outbound proxy uses force_send_socket(udp:10.1.1.1:5060) to relay the INVITE to the SIP server. The SIP server send the INVITE to udp:10.1.1.1:5060 to make SIP outbound proxy send to the callee. The SIP outbound proxy calls force_send_socket(172.16.1.1) to send the INVITE to the callee. In OpenSIPS 1.9, the force_send_socket function will use udp:172.16.1.1:5060 if the callee registers via UDP and use tls:172.16.1.1:5061 if the callee registers via TLS. However, in OpenSIPS 1.11.5, the force_send_socket will use udp:172.16.1.1:5060 even when the callee register via TLS. How could I config OpenSIPS such that it can use the right socket to send INVITEs to callees based on the UDP or TLS the callee register via? Thanks for any comment. Best regards, Chen-Che -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/Multiple-sockets-and-force-send-socket-tp7599170.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] Multiple sockets and force_send_socket
Hi Aron, I have modified the config with the addition of if ($(ru{uri.transport}) == "tls") force_send_socket(tls:172.16.13.1:5061); else force_send_socket(udp:172.16.13.1:5060); to fulfill my purpose. Thanks for your answer. Best regards, Chen-Che -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/Multiple-sockets-and-force-send-socket-tp7599170p7599175.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] Is there some sort of ring group implementation where users are dialled and just the first one to answer will get the cal?
Hi, In my own experience, one way to achieve ring group implementation is to make those users register use the same number. When someone calls the number, all the users will receive the INVITE request and only the first one answering the call will start a session. The others will receive CANCEL request from OpenSIPS. To enable this feature, just t_relay() the request in branch_route. B.R, Chen-Che -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/Is-there-some-sort-of-ring-group-implementation-where-users-are-dialled-and-just-the-first-one-to-an-tp7598035p7598039.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
[OpenSIPS-Users] How many users can register with the same username simultaneously?
Hi, I'm testing the SIP forking functionality. I set up a number of SIP clients using the same username to do registration. From the registrar module, I think that the number of concurrent clients with the same username is limited only by the parameter ``max_contact''. However, when I set modparam(registrar, max_contacts, 30), the OpenSIPS instance stops when the number of SIP clients using the same username is 20. The error log is shown below. /usr/sbin/opensips[15878]: CRITICAL:core:receive_fd: EOF on 12 /usr/sbin/opensips[15754]: ERROR:nat_traversal:save_keepalive_state: failed to open keepalive state file for writing: Permission denied /usr/sbin/opensips[15754]: CRITICAL:core:sig_alarm_abort: BUG - shutdown timeout triggered, dying... I use OpenSIPS 1.9.1. If any other configuration is required, please kindly let me know. Thanks. Best regards, Chen-Che -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/How-many-users-can-register-with-the-same-username-simultaneously-tp7597946.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] Is there any way to access Referred-By header field?
Hi Bogdan-Andrei, It's my bad that I read the log wrong. I taken the output of some REFER request containing only the uri but not display name as the output of the observed INVITE request containing the uri. OpenSISP did show the display name of Referred-By in the INVITE request. Sincerely sorry for this mistake. Best regards, Chen-Che -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/Is-there-any-way-to-access-Referred-By-header-field-tp7597066p7597082.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] Is there any way to access Referred-By header field?
Hi Bogdan-Andrei, It works for $(hdr(Referred-By){nameaddr.uri}), but I get nothing from $(hdr(Referred-By){nameaddr.name}). The header field is like Referred-By:d3138e979-a266-4b31-bdc7-d9829cd1fa3asip:0...@test.com From the script transformations document, I expect to get the display name d3138e979-a266-4b31-bdc7-d9829cd1fa3a when using $(hdr(Referred-By){nameaddr.name}). Do I misunderstand anything or the example header field is not eligible? Thanks for any help. Best wishes, Chen-Che -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/Is-there-any-way-to-access-Referred-By-header-field-tp7597066p7597080.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
[OpenSIPS-Users] Is there any way to access Referred-By header field?
Hell all, Does anyone know how to access Referred-By header field (RFC 3892) in OpenSIPS? From the Core variables document, I could not find any variable for Referred-By. Please kindly let me know if you have a solution to this. Thanks. Best wishes, Chen-Che -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/Is-there-any-way-to-access-Referred-By-header-field-tp7597066.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] Is there any way to access Referred-By header field?
Hi Bogdan-Andrei, Thanks for your comment. It totally works. Best wishes, Chen-Che -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/Is-there-any-way-to-access-Referred-By-header-field-tp7597066p7597078.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] Memory leak issue?
Hi Vlad, As Liviu replied, it is extremely likely that OpenSIPS 1.9.2 does not have memory leak. All is because I did not fully understand the Linux memory management. After doing the stress tests for several days, OpenSIPS remains to work normally. Thanks for your comment. Best wishes, Chen-Che -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/Memory-leak-issue-tp7596394p7596526.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
[OpenSIPS-Users] Memory leak issue?
Hi all, I'm using OpenSIPS version 1.9.2 to set up a SIP outbound proxy and two internal SIP servers in my testing environment. All SIP requests and responses follow the same following routes. SIP client -- SIP outbound proxy -- SIP server -- SIP outbound proxy -- SIP clients With some stress tests in several days (many SIP client continue registration), I find that OpenSIPS eats much more memory than what I configuration. The eaten memory is not released after more than several hour after the stress test is done. Following the official troubleshooting guide about memory issue, I try to identify whether this is a memory leak issue. Please kindly help to take a look at the attached log files. Besides, is it possible that my incorrect configuration leads to memory leak? I am afraid that I do not properly write the script to produce the memory leak issue. Many thanks for any comment. opensips_memory_leak_sipserver.gz http://opensips-open-sip-server.1449251.n2.nabble.com/file/n7596394/opensips_memory_leak_sipserver.gz opensips_memory_leak_sipoutbound.gz http://opensips-open-sip-server.1449251.n2.nabble.com/file/n7596394/opensips_memory_leak_sipoutbound.gz Best regards, Chen-Che -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/Memory-leak-issue-tp7596394.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
[OpenSIPS-Users] OpenSIPS scalability with TLS connections.
Dear all, OpenSIPS can achieve extremely high performance according to the tests provided by the official site. However, it seems that the results were based on UDP. I am trying to use OpenSIPS to set up a scalable SIP server which aims to support tens of thousands SIP clients using TLS. Such a large number of SIP clients would send REGISTER requests in different time slots, but each SIP client keeps its TLS connection alive. Due to my own limitation, I can establish about 2000 TLS connections between SIP clients and OpenSIPS server. I am curious that has anyone employed OpenSIPS to build a scalable SIP server with so many lasting TLS connections (e.g., 5 TLS connections)? Any comment is greatly appreciated. Best wishes, Chen-Che -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/OpenSIPS-scalability-with-TLS-connections-tp7595800.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
[OpenSIPS-Users] CSeq and automatic call termination issue
Hi all, In my testing environment, there are one SIP outbound proxy and one SIP server. The message flow of call setup is like caller-SIP outbound proxy-SIP server-SIP outbound proxy-callee. When the SIP outbound proxy receives an INVITE request from the SIP server, it calls create_dialog(B). The automatic call termination timer is set to 30 minutes (modparam(dialog, default_timeout, 1800)). This feature works well when no REFER/PRACK requests are sent during a dialog. If some REFER/PRACK are sent in the same dialog (CSeq increase), the BYE sent from SIP outbound proxy will be *reject by the client due to 500 (lower Cseq)*. I call match_dialog() in the SIP outbound proxy/SIP server when receiving REFER/PRACK. Can someone share how to address this issue? Any comment is greatly appreciated. Best regards, Chen-Che -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/CSeq-and-automatic-call-termination-issue-tp7595684.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] The user's address stay in memory
Hi Tin, As long as the registration of the user has timed out, the user's registration info will be invalid. With OpenSIPS, you can set an upper bound on the maximum expiry value of user registration (modparam(registrar, max_expires, your_preferred_value)) and set the interval in which the expired user registration data are removed (modparam(usrloc, timer_interval, your_preferred_value)). If you would like to delete such users on your own, you may use the MI function ul_rm provided in the usrloc moduel. Kind wishes, Chen-Che -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/The-user-s-address-stay-in-memory-tp7595234p7595242.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] Dialog default timeout issue
Hi Bogdan-Andrei, Thanks for your clear explanation! Best wishes, Chen-Che -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/Dialog-default-timeout-issue-tp7595155p7595241.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] Dialog default timeout issue
Hi Bogdan-Andrei, Since my understanding is ok, the long delay issue in our testing infrastructure should not affect the dialog timeout value when modparam(tm, own_timer_proc, 1) is enabled. Why it still occurs? According to my colleague, the long delay is an issue between the Linux kernel and the kvm adopted in our testing infrastructure. We are keeping our eye on this issue. Thanks. Best wishes, Chen-Che -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/Dialog-default-timeout-issue-tp7595155p7595213.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
[OpenSIPS-Users] Dialog default timeout issue
Dear all, I have been using the automatic dialog termination feature by setting the dialog default timer (modparam(dialog, default_timeout, 1800) and create_dialog(“B”). This function had been working normally for weeks but it turned abnormal in the last few days. Specifically, the OpenSIPS server would terminate the calls later than the time at which the timer expired (e.g., the timeout value is 30 minutes but the server terminated the calls after the calls have been lasting 35 minutes). When running opensipsctl fifo dlg_list, I found the timeout was correct but kept varying (increased slowly and sometime stayed fixed). Besides, the following messages are shown in the log many times CRITICAL:core:timer_ticker: timer handler ds-pinger lasted (272 us) for more than timer tick (100 us) - potential timer shifting CRITICAL:core:timer_ticker: timer handler tm-timer lasted (381 us) for more than timer tick (100 us) - potential timer shifting I had no idea about any relevance between ``late call termination’’ and ``timer shifting’’. I use OpenSIP version 1.9.0. Does anyone encounter similar issue? Any comment is greatly appreciated. Best wishes, Chen-Che -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/Dialog-default-timeout-issue-tp7595155.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] Dialog default timeout issue
Hi Bogdan-Andrei, Thanks for your reply. The delays resulted from some unknown issue in our testing infrastructure rather than a number of destinations. I had set modparam(tm, own_timer_proc, 1) to make tm module run its own timer?! but the problem remains. Anyway, as long as the long delays issue is resolved, this issue should not exist. Thanks again. Kind wishes, Chen-Che -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/Dialog-default-timeout-issue-tp7595155p7595164.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] Dialog default timeout issue
Hi Bogdan-Andrei, I meant that I set modparam(tm, own_timer_proc, 1) in the first place but the dialogs were affected. From your previous reply, I though that setting modparam(tm, own_timer_proc, 1) enables TM have its own timer and dialogs can be prevented from being affected. So, setting modparam(tm, own_timer_proc, 1) should be effective in preventing dialogs from being affected by long delays? Or I misunderstand it? PS. In the my config, I just write if (is_method(INVITE)) create_dialog(B); and do not call t_newtran() Thanks. Kind wishes, Chen-Che -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/Dialog-default-timeout-issue-tp7595155p7595187.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
[OpenSIPS-Users] Is it possible to have a reliable channel between OpenSIPS and RTPProxy?
Hi all, I'm encountering a low cps (call per second) issue. In my test, it is not guaranteed that rtpproxy_offer() won't fail when the cps is 40. I know that the control channel (commands from the OpenSIPS server to RTPProxy) is udp-based and thus is inherently unreliable. However, is there any approach to increase the cps? Or 40 cps is a reasonable number for call setup. Any comments are greatly appreciated. Best wishes, Chen-Che -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/Is-it-possible-to-have-a-reliable-channel-between-OpenSIPS-and-RTPProxy-tp7594956.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
[OpenSIPS-Users] Stress test for call setup
Hi all, I'm doing the stress test for the OpenSIPS server and the RTP proxy. I encounter the high drop rate of commands sent from SIP server to the RTP proxy. I send 20 INVITEs in one second to the SIP server and the RTP proxy only successfully handled fewer than 75% commands from the SIP server. I am curious about others' experiences of this issue. How can I increase the number of commands sent from the SIP server to be successfully handled by the RTPProxy? I have increased the number of retries to be 20 (modparam(rtpproxy, rtpproxy_retr, 20)). Any idea/comment is greatly appreciated. Best wishes, Chen-Che -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/Stress-test-for-call-setup-tp7594609.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] db_text for domain table
Hi Bogdan-Andrei, I tried to copy the domain and db_text modules from 1.11 to 1.9 and ran ``make deb''. Unfortunately, it failed to create the deb with the following error message. Do I need to copy all the modules from 1.11 to 1.9 rather than only the domain/db_text modules? If so, it seems that I should install OpenSIPS 1.11 instead of 1.9 for addressing this issue. Best wishes, Chen-Che make[3]: Entering directory `/home/test/opensips-1.9.2-tls/modules/domain' Compiling api.c Compiling domain.c Compiling domain_mod.c Compiling hash.c Compiling mi.c mi.c: In function ‘mi_domain_dump’: mi.c:67:26: error: ‘MI_IS_ARRAY’ undeclared (first use in this function) mi.c:67:26: note: each undeclared identifier is reported only once for each function it appears in make[3]: *** [mi.o] Error 1 -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/db-text-for-domain-table-tp7593779p7593849.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] db_text for domain table
Hi Bogdan-Andrei, I use OpenSIPS 1.9.2. I hope the version is not too old for the domain table. Best wishes, Chen-Che -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/db-text-for-domain-table-tp7593779p7593827.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
[OpenSIPS-Users] db_text for domain table
Dear all, I use the db_text module for the dispatcher and domain tables. For the dispatcher table, it works successfully. However, for the domain table, the OpenSIP server always fails to read the domain table on startup. Please help to take a look what listed below. Thanks for any comment. Best wishes, Chen-Che Related part of the OpenSIPS config loadmodule db_text.so loadmodule domain.so modparam(db_text, db_mode, 0) modparam(domain, db_url, text:///etc/opensips) modparam(domain, domain_table, domain) modparam(domain, db_mode, 1) # Use caching (file)/etc/opensips/domain id(int) domain(str) last_modified(str,null) 1:siptest.com:: Log message DBG:db_text:dbt_load_file: loading file [/etc/opensips/domain] DBG:db_text:dbt_table_new: mtime is 1412576125 DBG:db_text:dbt_load_file: column[0] is INT! DBG:db_text:dbt_load_file: column[1] is STR! DBG:db_text:dbt_load_file: column[2] is STR! DBG:db_text:dbt_query: new res with 1 cols DBG:db_text:dbt_result_new: new res with 1 cols DBG:core:db_new_result: allocate 48 bytes for result set at 0x7f14717152c8 DBG:core:db_allocate_columns: allocate 28 bytes for result columns at 0x7f14717155f8 DBG:core:db_allocate_rows: allocate 48 bytes for result rows and values at 0x7f1471715480 DBG:domain:reload_domain_table: Number of rows in domain table: 1 *ERROR:domain:reload_domain_table: Database problem* -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/db-text-for-domain-table-tp7593779.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] Created and setup time of failed calls
Hi Răzvan, Great thanks. I wonder whether this feature is provided only in OpenSIPS 1.12 and the following versions? Or it is possible to have this great feature in previous versions such as OpenSIPS 1.9. I have this question because I'm using 1.9 version and may not adopt the latest version. Please kindly provide a patch at lease if possible. Thanks. Yours sincerely, Chen-Che -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/Created-and-setup-time-of-failed-calls-tp7592535p7592733.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
[OpenSIPS-Users] Created and setup time of failed calls
Dear all, Regarding accounting, OpenSIPS can keep track of created, setuptime, duration and other information of normal call dialogs in the acc table. For unsuccessful calls (sip_code 486, 487), from my own config, OpenSIPS records callid, time and some information but lacks created and setuptime in the acc table. I would like know how I can configure so that created and setup time of unsuccessful calls (response 486/487 etc.) would be recorded in the acc table. The information are intended for providing the complete video communication service usage logs. Any comment is greatly welcome. Best regards, Chen-Che -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/Created-and-setup-time-of-failed-calls-tp7592535.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
[OpenSIPS-Users] Occasional registration handling errors
Dear all, Recently, I encounter a problem that the SIP server abnormally processes REGISTER once or twice a day. An example is given as follows. A client sends a REGISTER with stale nonce to the SIP server. The SIP server replies a 401 with a new nonce. The client sends a REGISTER with the new nonce to the SIP server. For some unknown reason, the SIP server processes the REGISTER a little longer and thus the client re-sends the REGISTER to the SIP server. At the same time, the two threads of the SIP server processes the two REGISTER separately. In the end, one thread replies 401 but the other replies 200 OK. A real log is listed below. The version of OpenSIPS I use is 1.9.1. Any comment is very welcome. Best regards, Chen-Che Jun 29 06:40:59 localhost /usr/sbin/opensips[25665]: REGISTER cseq nonce: sip:100...@thcloud.com 5855 53afb4e154af38f8986e1e4b16b275cee3ac325f6fd1 Jun 29 06:40:59 localhost /usr/sbin/opensips[25665]: code: -3 Jun 29 06:40:59 localhost /usr/sbin/opensips[25619]: 401: sip:100...@thcloud.com sip:100...@thcloud.com 3700762647-73E1-0001@172.16.40.206 from 10.1.4.16 Jun 29 06:41:01 localhost /usr/sbin/opensips[25668]: REGISTER cseq nonce: sip:100...@thcloud.com 5856 53afb51954b485bc2a10c601619817262c4ed2935dd5 Jun 29 06:41:01 localhost /usr/sbin/opensips[25678]: REGISTER cseq nonce: sip:100...@thcloud.com 5856 53afb51954b485bc2a10c601619817262c4ed2935dd5 Jun 29 06:41:01 localhost /usr/sbin/opensips[25678]: code: -3 Jun 29 06:41:01 localhost /usr/sbin/opensips[25616]: 401: sip:100...@thcloud.com sip:100...@thcloud.com 3700762647-73E1-0001@172.16.40.206 from 10.1.4.16 Jun 29 06:41:01 localhost /usr/sbin/opensips[25617]: 200: sip:100...@thcloud.com sip:100...@thcloud.com 3700762647-73E1-0001@172.16.40.206 from 10.1.4.16 -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/Occasional-registration-handling-errors-tp7592164.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] OpenSIPS and Apple Push Notification
Hi, I also encountered the same issue. What I do is create an external process which communicates with the APNS server and receives requests from OpenSIPS server. Specifically, when the SIP server receives an INVITE but fails to lookup for the callee, the SIP server notifies the external process with the callee SIP ID. Next, with the callee's SIP ID, the external process checks whether the callee uses ios-version App. If so, the external process retrieves the callee's APNS token based on the received SIP ID and sends an notification with the token to the APNS server. If lucky, the callee invokes the SIP-based VoIP app and receives some following SIP INVITE in time. I hope that this would be helpful. Any comment is welcome. if (!lookup(location,m)) { switch ($retcode) { case -1: case -3: exec_avp(echo $tU,$ci | nc 10.100.13.12 externalProcessPort, $avp(ios)); xlog(iOS: $avp(ios)); if ($avp(ios) != 1) { t_newtran(); xlog(Invite: 404 Not Found); t_reply(404, Not Found); } exit; case -2: sl_send_reply(405, Method Not Allowed); exit; } } Best regards, Chen-Che -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/OpenSIPS-and-Apple-Push-Notification-tp7591783p7591786.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] TLS-enabled SIP server by installing deb file
Hi Liviu, Your solution works for me. Thanks for your help. Best wishes, Chen-Che -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/TLS-enabled-SIP-server-by-installing-deb-file-tp7590955p7590971.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
[OpenSIPS-Users] TLS-enabled SIP server by installing deb file
Hi all, I would like to enable TLS in the OpenSIPS SIP server. Following the official tutorial, I can have such a TLS-enabled SIP server if I use ``TLS=1 make'' and ``TLS=1 make install'' to install OpenSIPS. However, when I use ``TLS=1 make deb'' to generate a deb file and install OpenSIPS from the deb, I always failed to make clients register via TLS connection. I want to know it is my problem or using deb for installation needs some additional configuration. Many thanks for any comment. Best regards, Chen-Che -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/TLS-enabled-SIP-server-by-installing-deb-file-tp7590955.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
[OpenSIPS-Users] SDP change issue
Dear all, I'm encountering an issue as follows. In the system, there are one SIP server (OpenSIPS) and multiple RTP proxies. Each RTP proxy serves for one region and the users in that region will use the corresponding RTP proxy for media streaming relay. To achieve this, I make the users in the same region have the same prefix in their SIP numbers and create a mapping between the prefix and the RTP proxy. With such setup, users will be served by a close RTP proxy and the latency would be reduced. By setting the RTP proxy set (id) to the corresponding prefix, such a scenario can be realized. However, in the system, the RTP proxies listen on private interfaces for security concern (an RTP proxy and some other applications run on a host behind NAT). Thus, I need to rewrite the SDP connection IP with the corresponding NAT's public IP for the RTP proxy. To do this, it seems somewhat complicated to do configuration. I would like to know whether OpenSIPS has any built-in mechanism for this issue (prefix + RTP proxy + NAT public IP). Many thanks for any comment. Best wishes, Chen-Che -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/SDP-change-issue-tp7590721.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] Unable to parse SDP when processing 200 OK from pure-audio polycom phone
Hi all, After doing further experiments, the reason that the OpenSIPS server do not replace the IP of the callee with the RTPProxy's IP is because the OpenSIPS server calls ``FORCE_RTP_PROXY_RET (-1)''. Specifically, when processing the SDP from Polycom device (soundpoint 550), the server does not continue to modify SDP after running the following code. I also give the related cp, nortpproxy_str.s and cp1 below. When I force the server to continue handling SDP modification (ignore proxied != 0 force == 0 termination condition), the OpenSIPS server requests the RTPProxy to open relay ports as expected. I am unable to find the root cause of this issue. I will appreciate any help. Best regards, Chen-Che module/rtpproxy/rtpproxy.c proxied = 0; if (nortpproxy_str.len) { for ( cp=args-body.s ; (len=args-body.s+args-body.len-cp) = nortpproxy_str.len ; ) { cp1 = ser_memmem(cp, nortpproxy_str.s, len, nortpproxy_str.len); if (cp1 == NULL) break; if (cp1[-1] == '\n' || cp1[-1] == '\r') { proxied = 1; break; } cp = cp1 + nortpproxy_str.len; } } if (proxied != 0 force == 0) { FORCE_RTP_PROXY_RET (-1); } cp: v=0#015#012o=- 1167610243 1167610243 IN IP4 192.168.3.177#015#012s=Polycom IP Phone#015#012c=IN IP4 192.168.3.177#015#012t=0 0#015#012m=audio 2226 RTP/AVP 0 101#015#012a=rtpmap:0 PCMU/8000#015#012a=rtpmap:101 telephone-event/8000#015#012m=video 0 RTP/AVP 103 99 98 97 96 34#015#012a=nortpproxy:yes #015#012a=rtpmap:103 VP8/9#015#012a=rtpmap:99 MP4V-ES/9#015#012a=fmtp:99 profile-level-id=3#015#012a=rtpmap:98 H263-1998/9#015#012a=fmtp:98 CIF=1;QCIF=1#015#012a=rtpmap:97 theora/9#015#012a=rtpmap:96 x-snow/9#015 nortpproxy_str.s: a=nortpproxy:yes cp1: a=nortpproxy:yes #015#012a=rtpmap:103 VP8/9#015#012a=rtpmap:99 MP4V-ES/9#015#012a=fmtp:99 profile-level-id=3#015#012a=rtpmap:98 H263-1998/9#015#012a=fmtp:98 CIF=1;QCIF=1#015#012a=rtpmap:97 theora/9#015#012a=rtpmap:96 x-snow/9#015 -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/Unable-to-parse-SDP-when-processing-200-OK-from-pure-audio-polycom-phone-tp7590276p7590664.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
[OpenSIPS-Users] How to store SRTP keys of 200 OK?
Hello all, For video recording and playback, I need to store the SRTP keys in SDP of INVITE and 200 OK (the call is protected over SRTP). For INVITE, I can use ``exec_avp(echo 1 $rb | nc 10.100.13.11 7003, $avp(vch));'' to pass the SDP to some external process. However, exec_avp cannot be invoked on reply_route. Does anyone have some suggestion on this issue? Any help is greatly appreciated. Best wishes, Chen-Che -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/How-to-store-SRTP-keys-of-200-OK-tp7590634.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] How to store SRTP keys of 200 OK?
Hi Liviu, Many thanks for your reply. The version of OpenSIPS I used is 1.9.0, so it really works as you said. I thought that exec_avp cannot be invoked on rely_route because the exec module of 1.9 doc does not say that exec_avp can be used on reply_route (module doc shows: this function can be used from REQUEST_ROUTE, FAILURE_ROUTE, LOCAL_ROUTE, STARTUP_ROUTE). If possible, the document is suggested to be updated to reflect the new great support. Thanks so much. Best wishes, Chen-Che -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/How-to-store-SRTP-keys-of-200-OK-tp7590634p7590657.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] Unable to parse SDP when processing 200 OK from pure-audio polycom phone
Hi Razvan, I did an experiment and found that the OpenSIPS server did not send a command to the RTPProxy when the video port in SDP is 0. So this should not be an issue of the RTPProxy. If you have any comment, please let me know. Great thanks for your help. Best wishes, Chen-Che -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/Unable-to-parse-SDP-when-processing-200-OK-from-pure-audio-polycom-phone-tp7590276p7590384.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] Unable to parse SDP when processing 200 OK from pure-audio polycom phone
Hi Razvan, The OpenSIPS SIP server shows ``ERROR:rtpproxy:force_rtp_proxy: Unable to parse body'' on the log several times (not always). I did not see any error message from the RTPProxy. The attached file is the log with log_level = 6 for your reference. Many thanks for your kind help. failtoparsesdp.log http://opensips-open-sip-server.1449251.n2.nabble.com/file/n7590306/failtoparsesdp.log Best wishes, Chen-Che -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/Unable-to-parse-SDP-when-processing-200-OK-from-pure-audio-polycom-phone-tp7590276p7590306.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
[OpenSIPS-Users] Unable to parse SDP when processing 200 OK from pure-audio polycom phone
Dear all, I encountered an issue as follows. I used two VoIP apps to make call with a polycom phone that accepts voice calls only. When the INVITE request from the VoIP has video descriptions in SDP, the OpenSIPS SIP server fails to parse the SDP of the 200 OK from the polycom phone. If the INVITE request contains only the audio description in SDP, the OpenSIPS SIP server can run rtpproxy_offer(oc, IP) successfully on the SDP of the 200 OK from the polycom phone. It ``seems'' that the OpenSIPS server has problem with processing the video port being equal to 0 in SDP. The attached pcap file contains the above cases. Please help to clarify this issue. Sincerely appreciate any help. SDPParseFail.pcap http://opensips-open-sip-server.1449251.n2.nabble.com/file/n7590276/SDPParseFail.pcap Best regards, Chen-Che -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/Unable-to-parse-SDP-when-processing-200-OK-from-pure-audio-polycom-phone-tp7590276.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
[OpenSIPS-Users] invoke set_rtp_proxy_set() upon the failure of a call setup
Hi all, On receiving an INVITE, I invoke set_rtp_proxy_set() and rtpproxy_offer() to request the RTP proxy open ports for RTP packets relay. When the callee rejects the INVITE and replies with 486 response, I would like to invoke set_rtp_proxy_set() and unforce_rtp_proxy() to notify the RTP proxy to release the opened ports for the unsuccessful sessions. However, I find the set_rtp_proxy_set() could not be invoken on a failure route. I'd like to know how I should configure to make the RTP proxy release the opened ports in case of receiving unsuccessful responses from the callees. Thanks. Best wishes, Chen-Che -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/invoke-set-rtp-proxy-set-upon-the-failure-of-a-call-setup-tp7589572.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] invoke set_rtp_proxy_set() upon the failure of a call setup
Hi Bogdan, Many thanks for your immediate help:) Best wishes, Chen-Che -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/invoke-set-rtp-proxy-set-upon-the-failure-of-a-call-setup-tp7589572p7589601.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] SIP Registration in a Loadbalancing environment
Hi Kevin, From my own understanding and experience, you should make the 1st and 2nd registration messages processed by the same SIP server. Otherwise, the SIP server processing the 2nd registration message will regard it as some kind of replayed message. Hope this is helpful for you. Best wishes, Chen-Che -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/SIP-Registration-in-a-Loadbalancing-environment-tp7589151p7589153.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
[OpenSIPS-Users] A question about db_get_user_group
Hi all, The group module provides db_is_user_in() and db_get_user_group() functions. The db_is_user_in() works totally fine. However, the db_get_user_group() does not return the group IDs of a user. I do not know the real cause. I have inserted the required information into the grp and re_grp tables as follows. But when I call db_get_user_group(From, $avp(10)) and db_get_user_group($fu, $avp(11)), the returned values are all null (I call xlog($avp(10), $avp(11), $(avp(10)[0]), $(avp(11)[0]). Can anyone give me a hint on this? My version is OpenSIPS - 1.9. Many thanks. Best regards, Chen-Che table grp id | username | domain|grp| last_modified +--+-+---+- 1 | 100...@thcloud.com | thcloud.com | record| 1900-01-01 00:00:01 2 | sip:100...@thcloud.com | thcloud.com | record| 1900-01-01 00:00:01 3 | sip:100...@thcloud.com | thcloud.com | record| 1900-01-01 00:00:01 table re_grp id | reg_exp | group_id +---+-- 1| record|1 -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/A-question-about-db-get-user-group-tp7588040.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
[OpenSIPS-Users] Repeated INVITEs and nonce expiration time
Hi all, In my environment, there are one outbound proxy and one internal SIP server. The outbound proxy is an interface exposed to SIP clients and the internal SIP server is the one handling registration and making calls for SIP clients. For Apple's APNS service, one scenario must be supported in my environment (refer to my previous thread http://opensips-open-sip-server.1449251.n2.nabble.com/What-variable-mechanism-is-applicable-to-a-not-yet-transaction-case-td7586962.html). The scenario is that the outbound proxy will repeatedly send INVITEs to the SIP server on behalf of the caller before the callee has registered successfully. During the process, the SIP server sometimes thinks the repeated INVITEs with stale nonce and asks for authentication again. Since the repeated INVITEs are sent in less than 10 seconds after the first INVITE, the nonce should remain valid (the default nonce_expire_time is 30 seconds in OpenSIPS). Has anyone encountered the same issue? Any help is greatly appreciated. Best regards, Chen-Che -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/Repeated-INVITEs-and-nonce-expiration-time-tp7587685.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
[OpenSIPS-Users] About rtpproxy_stream2uac
Hi all, I have one particular application as follows. Suppose client A and client B had a video call recorded at the rtpproxy a few days ago. Now client B would like to watch the recorded session from client A to itself. The document of rtpproxy says that it can play a pre-recorded file to a client and OpenSIPS provides rtpproxy_stream2uac in the RTPPROXY module. I call start_record() to make rtpproxy record the video call (which consists of 8 files (2 (caller/callee) x 2 (audio/video) x 2 (rtp/rtcp)). However, I do not realize how to use rtpproxy_stream2uac() to make client B can watch what client A sent to him/her a few days ago. I find very few threads on the usage of rtpproxy_stream2uac in this forum. My questions are specifically listed below. 1. The rtpproxy play the file in what format to the client? Do I need to merge .rtp .rtcp files into one file in the format like mp4? Since rtpproxy_stream2uac only provides a file name, I don't know how client B can receive audio and video streams. 2. Client B wants to watch the recorded video call and thus no so-called callee in such a case. From rtpproxy_stream2uac(), it seems that one caller and one callee are required? Anyone has similar experience on this issue? Any comment is appreciated. PS. The versions of OpenSIPS and rtpproxy I used are branch 9585 and 1.2.1, respectively. Best regards, Chen-Che -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/About-rtpproxy-stream2uac-tp7587696.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
[OpenSIPS-Users] About db_mode of the usrlocl module
Hi all, The usrloc module provides 4 types of db_mode. When trying to use the write-through and write-back schemes, I find that the locations are not stored into the location table in the database as I expect. For example, when employing the write-through scheme, I cannot find the new registered user in the location table even 10 seconds after a user has registered. With the write-back scheme, setting modparam(usrloc, timer_interval, 60), query_flush_time=60, or query_buffer_size does not lead to registered users to be stored into the location table. I use the configuration below which works well for db_mode = 3 (DB-only). I wonder how I can let the registered locations stored at the memory as well as the database? Thanks for any comment. Best regards, Chen-Che modparam(usrloc, db_mode, 1) modparam(usrloc, nat_bflag, NAT_BFLAG) modparam(usrloc, timer_interval, 120) if (!save(location, sf)) sl_reply_error(); -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/About-db-mode-of-the-usrlocl-module-tp7587684.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] memory consumed by t_relay
Hi Bogdan-Andrei, As you suggest, I call match_dialog() at the outbound proxy when receiving the BYEs. Indeed, the match_dialog() returns true. However, the number of active_dialogs still increases and thus more memory is eaten by OpenSIPS. I also find that memory consumption issue occur when receiving REGISTERs (the workaround solution of setting dialog timer is not effective for this case). In my environment, the outbound proxy and the SIP proxy servers do not call record_route/loose_route. But the SIP proxy servers are using topology_hiding(). Is there another possible cause? Many thanks for your help. Best regards, Chen-Che -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/memory-consumed-by-t-relay-tp7586016p7586627.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
[OpenSIPS-Users] How to get only the ip from contact?
Hi all, An example contact uri of an INVIT looks like sip:111@61.60.228.221:5060. OpenSIPS seems not to have a specific variable to store the IP part. Is there an efficient way to get only the IP part from contact? Any idea is very welcome. Best regards, Chen-Che -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/How-to-get-only-the-ip-from-contact-tp7586612.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] How to get only the ip from contact?
Hi all, Thanks for the comments of you both. I just achieved my goal by using $var(callerip) = $ct.fields(uri); $var(sendip) = $(var(callerip){s.select,-1,@}); $var(sendip2) = $(var(sendip){s.select,0,:});. Obviously, $(ct.fields(uri){uri.host}) is a much better solution. Thanks again. Best wishes, Chen-Che -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/How-to-get-only-the-ip-from-contact-tp7586612p7586615.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] memory consumed by t_relay
Hi Bogdan-Andrei, I agree with you. The call flow in my setting is as follows. For request, caller--outbound proxy--proxy server--outbound proxy--callee For reply, caller--outbound proxy--proxy server--outbound proxy--callee Is is possible that a message reaching the same outbound proxy twice causes some problem? Best wishes, Chen-Che -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/memory-consumed-by-t-relay-tp7586016p7586494.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] memory consumed by t_relay
Hi Bogdan-Andrei, Regarding your questions, 1. The OpenSIPS at the outbound proxy sees and forwards BYEs successfully for each call. 2. No record-route/loose-route are called at the outbound proxy. So the root cause may be the lack of using record_route()/loose_route()? Best regards, Chen-Che -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/memory-consumed-by-t-relay-tp7586016p7586504.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] memory consumed by t_relay
Hi Bogdan-Andrei, When you get the memory error, could you please do : opensipsctl fifo get_statistics all and send me the output (off list) please? When about 10,000 calls, 10kcalls.log http://opensips-open-sip-server.1449251.n2.nabble.com/file/n7586442/10kcalls.log . When about 20,000 calls, 20kcalls.log http://opensips-open-sip-server.1449251.n2.nabble.com/file/n7586442/20kcalls.log Also, at step 4) , by stop, you mean you shutdown OpenSIPS or you stop the sipp load but OpenSIPS still runs ? I meant that I shutdown OpenSIPS. Going back to my request on memory debugging, I was wondering why your logs do no show the shm dump (but only pkg) - at step 3) do the SIGUSR stuff and be sure you look for the Memory status for shm mem in your logs - it must be there. With killing one specific OpenSIPS process, I get the log as the attachment https://docs.google.com/file/d/0B-NXx5YS2KQZOW11YnhNY2hGUkk/edit?usp=sharing (I set memdump=1, memlog=1, debug=6) If any further information is required or any provided log has something in lack, please feel free to let me know. Many thanks for your kind support. Best regards, Chen-Che -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/memory-consumed-by-t-relay-tp7586016p7586442.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] memory consumed by t_relay
Hi Bogdan-Andrei, With SIPp keeps creating and terminating dialogs round after round, the only things at the outbound proxy I know are 1) each SIP process occupies more and more memory. 2) opensipsctl fifo get_statistics shmem: shows the shmem:used_size and shmem:real_used_size both keep increasing (but tm:inuse_transactions is nearly constant) 3) After processing 60,000 dialogs (call per second: 100; within less than an hour), WARNING:core:fm_malloc: Not enough free memory, will atempt defragmenation ERROR:tm:new_t: out of mem ERROR:tm:t_newtran: new_t failed are output to the log and no new INVITEs could be forwarded from outbound proxy to internal SIP server. 4) if OpenSIPS at the outbound proxy stops, the occupied memory seems to be freed normally. It is possible that there exists a flaw in my configuration file. However, I am not capable of identifying the problem. Is there anything I can provide to help address this issue? Best regards, Chen-Che -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/memory-consumed-by-t-relay-tp7586016p7586430.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] memory consumed by t_relay
Hi Bogdan-Andrei, Please refer to the log OpenSIP_outbound_memory.log http://opensips-open-sip-server.1449251.n2.nabble.com/file/n7586368/OpenSIP_outbound_memory.log Many thanks for your help. Best regards, Chen-Che -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/memory-consumed-by-t-relay-tp7586016p7586368.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] memory consumed by t_relay
Hi Bogdan-Andrei, Will there be any update on this issue? Many thanks for your help. Best regards, Chen-Che -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/memory-consumed-by-t-relay-tp7586016p7586291.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] Detect failed SIP server
Hi Bogdan-Andrei, Your question is reasonable since OpenSIPS is a great product. However, I am sure about the 408 request timeout is generated by the outbound proxy (running OpenSIPS). I have attached my configuration file of the outbound proxy and the corresponding .pcap file for your reference. Many thanks for your help. outboundproxy.cfg http://opensips-open-sip-server.1449251.n2.nabble.com/file/n7586272/outboundproxy.cfg Due to the large size, I upload the .pcap file to MEGA https://mega.co.nz/#!8VtVkRpS!bASK13EPnKc0h7ZqPBDWZWUVsfcP639oE19Jai9WzU8 Best regards, Chen-Che -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/Detect-failed-SIP-server-tp7585427p7586272.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] Detect failed SIP server
Hi Bogdan-Andrei, In my test environment, an outbound proxy forwards each received message from UA to an internal SIP proxy server. The SIP proxy server sends the message back to the outbound proxy after the proxy server processed the message. As you said, the SIP proxy server returns 100 try to the outbound proxy when receiving an INVITE (the message flow is shown below). So fr_timer should be replaced with fr_inv_timer (but I leave the fr_inv_timer to default). Anyway, after I modified my configuration to modparam(tm, fr_timer, 10) modparam(tm, fr_inv_timer, 32) modparam(tm, fr_timer_avp, $avp(timeout)) modparam(tm, fr_inv_timer_avp, $avp(intimeout)) route { $avp(timeout) = 32; $avp(intimeout)=32; !t_relay(); } nothing changes. A caller remains to receive 408 request timeout after 10 seconds. I did lookup this forum but couldn't find directly related threads. Please help me address this issue. Thanks so much. Best regards, Chen-Che INVITE 1. caller-outbound proxy---proxy server 100 try 2. calleroutbound proxy---proxy server INVITE 3. caller--outbound proxy-proxy server 100 try 4. caller--outbound proxy-proxy server INVITE 5. caller--outbound proxy-proxy server INVITE 6. caller--outbound proxy-proxy server . . . 408 timeout n. caller--outbound proxy-proxy server 408 timeout n+1. caller--outbound proxy---proxy server 408 timeout n+2. calleroutbound proxy---proxy server -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/Detect-failed-SIP-server-tp7585427p7586267.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] Detect failed SIP server
HI Bogdan-Andrei, Thanks for your answer. However, in my configuration file, I set modparam(tm, fr_timer, 10) modparam(tm, fr_timer_avp, $avp(timeout)) route { $avp(timeout) = 32; !t_relay(); } A caller still receives 408 request timeout when the caller does not receive 200 OK in 10 seconds (after sending INVITE) rather than 32 seconds. What should I set to make the caller receive 408 request timeout after 32 seconds? Thanks for your help. Best regards, Chen-Che -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/Detect-failed-SIP-server-tp7585427p7586240.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] crash after failover
Hi all, Will there be any update on this issue? Many thanks for your kind investigation. Best regards, Chen-Che -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/crash-after-failover-tp7585845p7586164.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] Send BYEs issued by create(B) with forced interface and destination
Hi Bogdan-Andrei, With $du setting in local_route, BYEs issued upon the expiration of the dialog timer can be sent to the outbound proxy as I wish. Many thanks for your comment. Best regards, Chen-Che -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/Send-BYEs-issued-by-create-B-with-forced-interface-and-destination-tp7586028p7586088.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
[OpenSIPS-Users] Send BYEs issued by create(B) with forced interface and destination
Hi all, In my environment, I have one outbound proxy and internal SIP proxy servers. Each internal SIP proxy server listens on two interface where one is 192.168.x.x and the other is 127.0.0.1. When receiving an INVITE, an SIP proxy server calls create_dialog(B) to send a BYE toward the calller and calllee upon the expiration of the timer of the dialog. However, I want that this BYE message is sent by the inferface 192.168.x.x and sent to the outbound proxy first (rather than the caller and callee directly). I wonder whether this can be achieved by some setting in the configuration file? PS. From my experiment, such BYEs seems to sent with 127.0.0.1 and ERROR:tm:t_uac: attempt to send to 'sip:80001@192.168.8.245:5060' failed is shown. Best regards, Chen-Che -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/Send-BYEs-issued-by-create-B-with-forced-interface-and-destination-tp7586028.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
[OpenSIPS-Users] memory consumed by t_relay
Hi all, In my environment, I have an outbound proxy and two internal SIP proxy servers. The outbound proxy listens on two interfaces where one is (61.60.x.x) for communication with outside UAs and the other is (192.168.x.x) for communication with internal SIP server. When the outbound proxy receives a SIP message from outside UA, it uses force_send_socket(udp:192.168.x.x:5060) and t_relay() to forward the SIP message to some internal SIP proxy server. On the other hand, when the outbound proxy gets a SIP message from internal SIP server, it uses force_send_socket(udp:61.60.x.x) and t_relay() to forward the message to the destined UA. After processing about 10,000 INVITEs, the outbound proxy runs out of its allocated memory. The reason seems to be the use of t_rely() which generates transactions. If so, when the transaction data will be cleared from the memory at the outbound proxy (the outbound proxy forwards BYEs as well)? Or whether some functions can be used in the configuration file to remove such transaction data? I had tried to use send() instead of t_relay() since send() is stateless. However, force_send_socket does not take effect for send(). Specifically, when the outbound proxy uses force_send_socket(udp:192.168.x.x:5060) and send() to forward a SIP message to some internal SIP proxy server, the SIP message is actually sent with 61.60.x.x rather than 192.168.x.x. Can anyone instruct me how to solve this issue? Deeply thanks for any comment. Best regards, Chen-Che -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/memory-consumed-by-t-relay-tp7586016.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] crash after failover
Hi Bogdan-Andrei, The following is the core file after proxy server B goes down. If more information is required, please feel free to tell me. Thanks so much. Best wishes, Chen-Che quanta@qri-cdrc-application-node1:/etc/opensips$ sudo gdb opensips core GNU gdb (Ubuntu/Linaro 7.4-2012.04-0ubuntu2.1) 7.4-2012.04 Copyright (C) 2012 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type show copying and show warranty for details. This GDB was configured as x86_64-linux-gnu. For bug reporting instructions, please see: http://bugs.launchpad.net/gdb-linaro/... Reading symbols from /usr/local/sbin/opensips...done. [New LWP 3084] Core was generated by `/usr/sbin/opensips start -w /etc/opensips/'. Program terminated with signal 11, Segmentation fault. #0 0x004a8b74 in str2ip6 (st=0x783710) at /usr/include/x86_64-linux-gnu/bits/string3.h:52 52return __builtin___memcpy_chk (__dest, __src, __len, __bos0 (__dest)); -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/crash-after-failover-tp7585845p7585878.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
[OpenSIPS-Users] crash after failover
Hi all, In my environment, I use two active SIP proxy servers A and B that share one backend database for high performance and failover. When active proxy server A goes down, proxy server B will fetch the dialog information (originally processed by the proxy server A) from the database into its local memory when receiving a BYE. Specifically, proxy server B executes avp_db_query(update dialog set caller_sock='udp:127.0.0.1:5060', callee_sock='udp:127.0.0.1:5060' where caller_sock='udp:10.100.13.12:5060') and then calls exec_msg(/usr/local/sbin/opensipsctl fifo dlg_db_sync). Note that udp:10.100.13.12:5060 is the processing socket of proxy server A. With the above approach, proxy server B can handle BYE requests whose associated dialogs are established by proxy server A in the beginning. However, when a number of BYE requests reach proxy server B simultaneously (60 BYES within one second), proxy server B may crash, resulting from an ineligible query Query: update dialog set state=4,timeout=1366090793,caller_cseq=NULL,callee_cseq=NULL,caller_ping_cseq=0,callee_ping_cseq=0,vars=NULL,profiles=NULL,script_flags=0,flags=0 where dlg_id=2972999775959. A part of the log is below. Although the query is not my used avp_db_query, I don't know whether the root cause is wrong setting of my config for failover. Any comment is greatly appreciated. Best regards, Chen-Che : DBG:db_postgres:db_postgres_submit_query: 0x7f0dec096010 PQsendQuery(update dialog set state=4,timeout=1366102836,caller_cseq='0',callee_cseq='1',caller_ping_cseq=0,callee_ping_cseq=0,vars=NULL,profiles='O1S1R1#null|',script_flags=0,flags=144 where dlg_id=2822250379813) : DBG:core:db_new_result: allocate 48 bytes for result set at 0x7f0dec0961a8 : DBG:db_postgres:db_postgres_store_result: 0x7f0dec096010 PQresultStatus(PGRES_COMMAND_OK) PQgetResult(0x10f0720) : DBG:db_postgres:free_query: PQclear(0x10f0720) result set : DBG:core:db_free_rows: freeing 0 rows : DBG:core:db_free_result: freeing result set at 0x7f0dec0961a8 : DBG:dialog:dialog_update_db: updating existing dialog 0x7f0dc4271750 : DBG:dialog:set_final_update_cols: DLG vals and profiles should not be saved[0:0] : DBG:db_postgres:db_postgres_submit_query: 0x7f0dec096010 PQsendQuery(update dialog set state=4,timeout=1366090793,caller_cseq=NULL,callee_cseq=NULL,caller_ping_cseq=0,callee_ping_cseq=0,vars=NULL,profiles=NULL,script_flags=0,flags=0 where dlg_id=2972999775959) : DBG:db_postgres:db_postgres_submit_query: 0x7f0dec096010 PQsendQuery failed: ERROR: null value in column caller_cseq violates not-null constraint#012DETAIL: Failing row contains (2972999775959, 20-31706@192.168.8.222, sip:10...@thcloud.com, 31706SIPpTag00Caller20, sip:10...@thcloud.com, 22109SIPpTag01Callee20, null, null, null, null, 0, 0, null, null, sip:10039@192.168.8.222:6060, sip:10005@192.168.8.225:6060;transport=UDP, udp:127.0.0.1:5060, udp:127.0.0.1:5060, 4, 1366091036, 1366090793, null, null, 0, 0).#012 Query: update dialog set state=4,timeout=1366090793,caller_cseq=NULL,callee_cseq=NULL,caller_ping_cseq=0,callee_ping_cseq=0,vars=NULL,profiles=NULL,script_flags=0,flags=0 where dlg_id=2972999775959 : DBG:db_postgres:free_query: PQclear(0x10f1360) result set : ERROR:db_postgres:db_postgres_submit_query: 0x7f0dec096010 PQsendQuery Error: ERROR: null value in column caller_cseq violates not-null constraint#012DETAIL: Failing row contains (2972999775959, 20-31706@192.168.8.222, sip:10...@thcloud.com, 31706SIPpTag00Caller20, sip:10...@thcloud.com, 22109SIPpTag01Callee20, null, null, null, null, 0, 0, null, null, sip:10039@192.168.8.222:6060, sip:10005@192.168.8.225:6060;transport=UDP, udp:127.0.0.1:5060, udp:127.0.0.1:5060, 4, 1366091036, 1366090793, null, null, 0, 0).#012 Query: update dialog set state=4,timeout=1366090793,caller_cseq=NULL,callee_cseq=NULL,caller_ping_cseq=0,callee_ping_cseq=0,vars=NULL,profiles=NULL,script_flags=0,flags=0 where dlg_id=2972999775959 : ERROR:core:db_do_update: error while submitting query : DBG:core:db_new_result: allocate 48 bytes for result set at 0x7f0dec0961a8 : DBG:db_postgres:db_postgres_store_result: 0x7f0dec096010 PQresultStatus(PGRES_FATAL_ERROR) PQgetResult((nil)) : ERROR:db_postgres:db_postgres_store_result: 0x7f0dec096010 - invalid query, execution aborted : ERROR:db_postgres:db_postgres_store_result: 0x7f0dec096010: PGRES_FATAL_ERROR : ERROR:db_postgres:db_postgres_store_result: 0x7f0dec096010: : DBG:core:db_free_rows: freeing 0 rows : DBG:core:db_free_result: freeing result set at 0x7f0dec0961a8 : WARNING:db_postgres:db_postgres_update: unexpected result returned : ERROR:dialog:dialog_update_db: could not update database info : DBG:core:pool_remove: connection still kept in the pool Apr 16 13:44:46 /usr/sbin/opensips[18220]: last message repeated 2 times : DBG:db_postgres:db_postgres_submit_query: 0x7f0dec095bc0 PQsendQuery(delete from location where expires'2013-04-16 00:44:47' AND expires!='1969-12-31 18:00:00')
[OpenSIPS-Users] Can OpenSIPS start when db is not ready?
Hi all, I know that OpenSIPS can work without any db. However, in case of using a db, according to my experience, an OpenSIPS server must start when the db is on. I wonder whether it's possible to make OpenSIPS successfully run before the database is ready? If this can be achieved, the time for setting up an environment will be shorten significantly when OpenSIPS and db run on different machines (which take a large amount of time to boot the machine). I haven't found any setting/configuration about this issue in the official document as well as this forum. Any comment is very welcome. Best wishes, Chen-Che -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/Can-OpenSIPS-start-when-db-is-not-ready-tp7585850.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] crash after failover
Hi Bogdan-Andrei, Thanks for your comment. In my test, no ACK is sent to the OpenSIPS server during/after failover. Sometimes proxy server B goes down (but /var/run/opensips/opensips.pid exists) after the above query error occurs. If required, I can provide the core dump for your reference. Many thanks for your help. Best wishes, Chen-Che -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/crash-after-failover-tp7585845p7585851.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] Can OpenSIPS start when db is not ready?
Hi Bogdan-Andrei, Many thanks for your clear explanation:) Best wishes, Chen-Che -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/Can-OpenSIPS-start-when-db-is-not-ready-tp7585850p7585864.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] What to do when one user agent leaves suddenly?
Hi Bogdan-Andrei, I see. I totally agree with you. Thanks for sharing such a valuable, real-life comment:) Best regards, Chen-Che -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/What-to-do-when-one-user-agent-leaves-suddenly-tp7585727p7585769.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
[OpenSIPS-Users] Appended media IP when using fix_nated_sdp
Hi all, In my environment, an RTP proxy has an internal interface (192.168.x.x for connecting with SIP proxy server) and an external interface (60.61.x.x for relaying media packets between outside UAs). When receiving an INVITE request, the SIP proxy server calls set_rtp_proxy_set rtp_proxy_offer for RTPProxy offering and then uses fix_nated_sdp to modify the media IP (c=) and origin description (o=) with the external interface (60.61.x.x). However, when I use fix_nated_sdp(2, 60.61.x.x) or fix_nated_sdp(10, 60.61.x.x), the connection information in SDP header (media IP) will be 192.168.x.x60.61.x.x rather than only 60.61.x.x. I though that 192.168.x.x. should be replaced with 60.61.x.x. I find an early post (http://opensips-open-sip-server.1449251.n2.nabble.com/rtp-proxy-issue-td3741507.html#a3742531) where one encountered a similar issue. The version of OpenSIPS I use is 1.9.0. Is the way I set the flag or IP wrong? Can someone give me a hint? Many thanks in advance. Best wishes Chen-Che -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/Appended-media-IP-when-using-fix-nated-sdp-tp7585770.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] Modify FROM header with REG EXP
Hi spady, If you use OpenSIPS 1.9.0, you may try to use the new Regular Expression Transformations (http://www.opensips.org/Resources/DocsCoreTran19#toc67). I have used it to modify contact and Via fields although my case is more simple. Best wishes, Chen-Che -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/Modify-FROM-header-with-REG-EXP-tp7585772p7585774.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] Appended media IP when using fix_nated_sdp
Hi Cédric, Thanks for your comment. Since all packets of UAs need to be sent to the external interface of an RTP proxy (no packets are allowed to reach the internal network), I don't think that the bridge mode is a solution to my issue. Best regards, Chen-Che -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/Appended-media-IP-when-using-fix-nated-sdp-tp7585770p7585798.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] Appended media IP when using fix_nated_sdp
Hi all, I've tried to use rtpproxy_offer(oc, 60.61.x.x) to replace rtpproxy_offer() fix_nated_sdp(10, 61.60.x.x). However, this is useful for solving my issue and the RTP proxy even has not received any command from the SIP proxy server (I tried five times in a row). Besides, the SDP content of INVITE request with rtpproxy_offer(oc, 60.61.x.x) is different from that with rtpproxy_offer() fix_nated_sdp(10, 61.60.x.x). With rtpproxy_offer(oc, 60.61.x.x), the SDP content of 200 OK has some missing attributes. Anyone has a solution to my problem that UAs see the external interface of an RTP proxy in the SDP header fields? Any idea is greatly appreciated. Best regards, Chen-Che -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/Appended-media-IP-when-using-fix-nated-sdp-tp7585770p7585799.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] What to do when one user agent leaves suddenly?
Hi Max and Bogdan-Andrei, Very grateful for your comments. However, at a first glance, I find that RFC 4208 says in Section 8.3: When the current time equals or passes the session expiration for a session, the proxy MAY remove associated call state, and MAY free any resources associated with the call. Unlike the UA, it *MUST NOT* send a BYE. If I don't misunderstand it, RFC 4208 requires a proxy server not to send a BYE to the other user agent in my issue. RFC 4208 seems to suggest that the two UAs are responsible for whether their session has timeout. So I guess I don't have to implement any mechanism to terminate that kind of dialog in my issue. Any comment is appreciated. Best wishes, Chen-Che -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/What-to-do-when-one-user-agent-leaves-suddenly-tp7585727p7585758.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
[OpenSIPS-Users] What to do when one user agent leaves suddenly?
Hi all, I have one issue that may not be related to OpenSIPS. Suppose two user agents are having a video call with each other (RTP proxy is serving as packet relay). One of the two user agents suddenly leaves without sending a BYE request owing to some factors (such as network disconnection). In such a case, should a SIP server terminate the dialog by sending a BYE request if the other user agent does not hang up the video call on his/her own? Or a SIP server does not need to do anything and just waits for the other user agent to end the call on his/her own? My two questions about this issue are 1) Any SIP-related RFC mentions anything about this issue? 2) If the SIP server has to terminate the dialog, what mechanism is appropriate? I know that create_dialog(Pp)/create_dialog(B) may be helpful for this issue, but I am looking for a better solution. Any suggestion or comment is very welcome. Many thanks. Best wishes, Chen-Che -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/What-to-do-when-one-user-agent-leaves-suddenly-tp7585727.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] Detect failed SIP server
Hi Bogdan-Andrei, Although setting fr_timer enables the outbound proxy to detect the status of internal SIP servers, a side-effect occurs for me. Specifically, with modparam(tm, fr_timer, 10), the outbound proxy can know the SIP server being dead within about 10 seconds when some internal SIP server went down. But, this causes the outbound proxy to issue a 408 request timeout message when a callee does not reply a 200 ok to a caller within 10 seconds. I wonder whether there is any mechanism to make the outbound proxy use different timers for detecting status of internal SIP servers and processing normal SIP messages. Many thanks in advance. Best wishes, Chen-Che -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/Detect-failed-SIP-server-tp7585427p7585607.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] Detect failed SIP server
Hi Bogdan-Andrei, Thanks so much for your reply. Previously, I thought that the detection mechanism works as follows. The outbound proxy sends an OPTIONS message to an internal SIP server every 3 seconds (ds_ping_interval). If the outbound proxy fail to receive the reply message three times (ds_probing_threshhold) in a row, it regards the internal SIP server as dead. With tr_timer, the outbound proxy can correctly detect the status of an internal SIP server as expected. The internal SIP server is enforced to stop in my test environment. Best regards, Chen-Che -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/Detect-failed-SIP-server-tp7585427p7585499.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
[OpenSIPS-Users] Detect failed SIP server
Hi all, I have one outbound proxy and two internal SIP servers. The outbound proxy uses the dispatcher module to detect that the two SIP servers are alive or dead. With OpenSIPS 1.8.2 and the following setting, the outbound proxy can detect the status of the two SIP server correctly. modparam(dispatcher, flags, 2) # 2: failover support is enabled modparam(dispatcher, ds_ping_method, OPTIONS) modparam(dispatcher, ds_ping_interval, 3) modparam(dispatcher, ds_probing_threshhold, 3) modparam(dispatcher, ds_probing_mode, 1) modparam(dispatcher, options_reply_codes, 501, 403), However, with OpenSIPS-1.9.0, I find that the outbound proxy knows whether a SIP is alive or dead after 30 seconds! Is my setting incorrect? Can someone show how to set to make the outbound proxy correctly know the status of a SIP server within my predefined interval? Any help is much appreciated. Best regards, Chen-Che -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/Detect-failed-SIP-server-tp7585427.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] An error exists in recording the number of ongoing sessions at RTP Proxies
Hi all, I still have no solution to this issue. The relevant code of my script about the statistics is attached in the previous post and list below. From the source code of set_dlg_profile in dlg_profile.c (see the following), I doubt the cause is profile value is not protected by a critical section. Any help is appreciated so much. Best regards, Chen-Che source code of set_dlg_profile in dlg_profile.c /* set the value */ if (profile-has_value) { linker-value.s = (char*)(linker+1); memcpy( linker-value.s, value-s, value-len); linker-value.len = value-len; } # my script code when receiving an INVITE request get_static_lock(RTP); $var(RTPProxyTry) = 0; $var(SelectedRTPProxyCount) = 0; while ($var(RTPProxyTry) 2) { $avp(thisRTPProxySet) = $shv(currRTPProxySet); set_rtp_proxy_set($avp(thisRTPProxySet)); switch ($shv(currRTPProxySet)) { case 1: get_profile_size(RTPProxyCount21, $avp(size21)); $var(SelectedRTPProxyCount) = $avp(size21); xlog(Try RTP proxy 1 with ongoing calls: $avp(size21)\n); break; case 2: get_profile_size(RTPProxyCount22, $avp(size22)); xlog(Try RTP proxy 2 with ongoing calls: $avp(size22)\n); $var(SelectedRTPProxyCount) = $avp(size22); break; default: xlog(Error: Invalid RTP proxy set\n); } if (($var(SelectedRTPProxyCount) 25) rtpproxy_offer()) { create_dialog(); xlog(Select RTP proxy: $avp(thisRTPProxySet)\n); switch ($shv(currRTPProxySet)) { case 1: set_dlg_profile(RTPProxyCount21, $avp(size21)); get_profile_size(RTPProxyCount21, $avp(size21)); break; case 2: set_dlg_profile(RTPProxyCount22, $avp(size22)); get_profile_size(RTPProxyCount22, $avp(size22)); break; default: xlog(Error: \n); } xlog(RTP proxies (1, 2) with ongoing calls: ($avp(size21), $avp(size22))\n); $shv(currRTPProxySet) = $shv(currRTPProxySet) + 1; if ($shv(currRTPProxySet) == 3) $shv(currRTPProxySet) = 1; t_on_reply(Invite); t_on_branch(Invite); t_on_failure(Invite); release_static_lock(RTP); route(Go); } $shv(currRTPProxySet) = $shv(currRTPProxySet) + 1; if ($shv(currRTPProxySet) == 3) $shv(currRTPProxySet) = 1; $var(RTPProxyTry) = $var(RTPProxyTry) + 1; } sl_send_reply(503, Service Unavailable); xlog(Warning: no available RTP proxy currently\n); release_static_lock(RTP); exit; -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/An-error-exists-in-recording-the-number-of-ongoing-sessions-at-RTP-Proxies-tp7584841p7585246.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] Incorrect RURI when failover
Hi Bogdan-Andrei, As you said, the RURI should point to B and the problem is solved. The rest of BYE messages are filled with sip:B;lr as RURI in my initial post. Many thanks for your answer. Best wishes, Chen-Che -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/Incorrect-RURI-when-failover-tp7585068p7585107.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
[OpenSIPS-Users] Incorrect RURI when failover
Hi all, I have one outbound proxy and two proxy servers A and B where proxy server A is master and B is standby. The outbound proxy is responsible for forwarding messages to the master proxy server A. The master proxy server A calls topology_hiding() on initial INVITE messages. When the master proxy server A is down, the standby proxy server B will take over the future requests. Since the standby proxy server B does not have the did information (topology hiding) generated by the master proxy server A, the outbound proxy will add a route header sip:B;lr to BYE message before forwarding a BYE message to the standby proxy server B. However, with SIPp (about 20 calls per second), only about 50% BYE messages can be filled in with the correct RURI. The other BYE messages are with the route header sip:B;lr added by the outbound proxy as the RURI. Can someone give me a hint to address this issue? thanks. Best regards, Chen-Che -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/Incorrect-RURI-when-failover-tp7585068.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] An error exists in recording the number of ongoing sessions at RTP Proxies
Hi all, Can someone help me solve this problem? It seems that the lock mechanism works correctly and the cause is malfunctioning of set_dlg_profile. I say so because in the critical section, the other printed information are correct and only get_profile_size is not correct all the time. I appreciate any help or suggestion very much. Yours sincerely, Chen-Che -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/An-error-exists-in-recording-the-number-of-ongoing-sessions-at-RTP-Proxies-tp7584841p7585050.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] OpenSIPS terminates when executing dlg_db_sync
Hi Vlad, The core dump regarding dlg_db_sync is attached. I use the tarball opensips-1.9.0_src.tar.gz modified 2013-02-27 to build the OpenSIPS. Scenario: Only one call is in session. I call dlg_db_sync and then the SIP server terminates. If more information is required, please feel free to let me know. Thanks. Best wishes, Chen-Che core_dump_for_dlg_db_sync http://opensips-open-sip-server.1449251.n2.nabble.com/file/n7585021/core_dump_for_dlg_db_sync -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/OpenSIPS-terminates-when-executing-dlg-db-sync-tp7584927p7585021.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] An error exists in recording the number of ongoing sessions at RTP Proxies
Hi Bogdan-Andrei, I tried to use the get_static_lock and release_static_lock to set up the critical session. However, I still get an incorrect result (please refer to the attached log). It is likely that I misuse the locking mechanism and thus I also provide the corresponding code. Please help me solve this issue. Many thanks in advance. PS. search RTP proxies (1, 2) with ongoing calls: (25, null) for the errors. Best regards, Chen-Che NewCode http://opensips-open-sip-server.1449251.n2.nabble.com/file/n7584966/NewCode rtpproxy_session_record_log http://opensips-open-sip-server.1449251.n2.nabble.com/file/n7584966/rtpproxy_session_record_log -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/An-error-exists-in-recording-the-number-of-ongoing-sessions-at-RTP-Proxies-tp7584841p7584966.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
[OpenSIPS-Users] OpenSIPS terminates when executing dlg_db_sync
Hi all, While the SIP server was running, I ran opensipsctl fifo dlg_db_sync. The SIP server would terminate (please refer to the attached log). The versions I used include 1.8.2 and 1.9.0-rc. For 1.9.0-rc, the SIP server terminates all the time as long as I run opensipsctl fifo dlg_db_sync. For 1.8.2, such terminations less frequently. Please help me check issue. Many thanks. Best wishes, Chen-Che dlg_db_sync_crash_log http://opensips-open-sip-server.1449251.n2.nabble.com/file/n7584927/dlg_db_sync_crash_log -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/OpenSIPS-terminates-when-executing-dlg-db-sync-tp7584927.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] OpenSIPS terminates when executing dlg_db_sync
Hi Vlad, I'm sorry that I did not follow the bug report process in advance. I'll send the gdb result later. The reason why I encountered this issue is as follows. In my environment, I have an outbound proxy and two proxy servers. The two proxy servers are responsible for registration service, dialog establishment, RTP proxy offering and so on. All request and reply messages are first received by the outbound proxy. Then, the outbound proxy will dispatch a received request/reply message to one of the proxy server that will process it. Using two proxy servers is mainly to achieve higher performance. To achieve high availability, I require that the following scenario works. Suppose that UA1 sends an INVITE message to UA2 and the INVITE message is handled by the proxy server 1. While UA1 and UA2 are still in session, the proxy server 1 is broken suddenly. In this situation, the BYE message from UA1 or UA2 should be properly handled by the proxy server 2. However, from my experiment, the proxy server 2 won't process the BYE message for two reasons 1) an OpenSIPS proxy server only processes dialogs existing in the local shared memory, and 2) an OpenSIPS proxy server won't process dialogs whose caller_sock and callee_sock are different from the listening socket of the proxy server. Therefore, to achieve my goal, the proxy server 2 will update the caller_sock and callee_sock of dialogs in the database to the listening socket of the proxy server 2. Next, the proxy server 2 runs opensipsctl fifo_dlg_db_sync to load dialogs into its shared memory. With the two steps, the HA is achieved. However, I guess that it is not a good idea to run opensips fifo dlg_db_sync frequently. I wonder that it is possible that an OpenSIPS proxy server can terminate a dialog even when the dialog exists only in the database? If so, in the above scenario, the proxy server does not need to run opensipsctl fifo dlg_db_sync and thus it is very easy to achieve high availability as well as high performance with two proxy servers. I'm sincerely grateful to any comment on this issue. Best regards, Chen-Che -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/OpenSIPS-terminates-when-executing-dlg-db-sync-tp7584927p7584944.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
[OpenSIPS-Users] An error exists in recording the number of ongoing sessions at RTP Proxies
Hi all, In my environment, I have one outbound proxy, two proxy servers and two RTP proxies. The outbound proxy uses ds_select_dst() to dispatch SIP requests to the two proxy servers. When receiving an INVITE request, a proxy server runs a round-robin algorithm to select an RTP proxy for relaying audio/video packets. A proxy server keeps track of the numbers of ongoing sessions served by the two RTP proxies. Normally, suppose that a proxy server receives 10 INVITE requests, it will have (5, 5) that means each RTP proxy is serving 5 sessions. However, when an RTP proxy is suddently disconnected, the numbers of ongoing sessions associated with RTP proxies may go wrong (not always, please refer to the attached log). A normal message is shown below. SIP server 2: New call from Caller: 10138 to Callee: 10139 -- 33th received INVITE packets Try RTP proxy 1 with ongoing calls: 16 Select RTP proxy: 1 RTP proxies (1, 2) with ongoing calls: (17, null) I used SIPp to simulate multiple concurrent calls to encounter such an issue. In addition to the attached log, I give the corresponding processing code of my script. Please help me solve this problem. Thanks so much. Code http://opensips-open-sip-server.1449251.n2.nabble.com/file/n7584841/Code Error_log http://opensips-open-sip-server.1449251.n2.nabble.com/file/n7584841/Error_log Best wishes, Chen-Che -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/An-error-exists-in-recording-the-number-of-ongoing-sessions-at-RTP-Proxies-tp7584841.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] An error exists in recording the number of ongoing sessions at RTP Proxies
Hi Bogdan-Andrei, Very grateful for your quick reply. I did think that the error results from my own critical session but I cannot resolve this issue since the version I use is 1.8.2. I will try the locking mechanism as you suggest. Many thanks. Best regards, Chen-Che -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/An-error-exists-in-recording-the-number-of-ongoing-sessions-at-RTP-Proxies-tp7584841p7584847.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] Save function with s flag
Hi shaheryarkh, Thanks for your help. I didn't notice that I have to set sock_hdr_name when using the save function with 's' flag. It totally works now. Thanks again. Best wishes, Chen-Che -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/Save-function-with-s-flag-tp7584789p7584835.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
[OpenSIPS-Users] Save function with s flag
Hi all, From registrar module, I find that the save function with s flag is able to store the socket specified in the REGISTER request. I use insert_hf(Sock: udp:127.0.0.1:5060) and insert_hf(udp:127.0.0.1:5060) in the header of REGISTER requests. When a SIP server receives such REGISTER requests, it invokes the save(location, s) function. However, the SIP server still stores the received socket into the location table rather than udp:127.0.0.1. How can I let the SIP server store udp:127.0.0.1 when receiving a REGISTER request? Please help me resolve this issue. Thanks so much in advance. Best wishes, Chen-Che -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/Save-function-with-s-flag-tp7584789.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] Failover and dialog termination
Hi Bogdan-Andrei, Regarding the problem you mentioned, it can be resolved in my case (refer to my previous post ). I'm very interested in your suggested solution. To achieve what you mention, how should I set in the opensips.cfg. I should listen=IP1 listen=IP2 on the same machine? I have tried that both the two servers were set to listen on its IP and the other's IP, but only one server start successfully. So I am not sure how to implement your solution in terms of opensips.cfg. Many thanks for your help. Best wishes, Chen-Che http://opensips-open-sip-server.1449251.n2.nabble.com/Topology-hiding-and-unsuccessful-dialog-termination-td7584064.html -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/Failover-and-dialog-termination-tp7584192p7584357.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] Topology hiding and unsuccessful dialog termination
Hi all, I have found a solution to my problem by using insert_hf at the outbound proxy rather than the proxy server. When receiving a BYE request, the outbound proxy is able to correctly fill in insert_hf() with the corresponding proxy server after looking up $du. Best wishes, Chen-Che -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/Topology-hiding-and-unsuccessful-dialog-termination-tp7584064p7584283.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] Failover and dialog termination
Hi all, After changing the listening port of pgpool to 5432 (default postgresql port), the dlg_db_sync() function indeed tries to load dialog info from DB. However, because PA and PB are both active (for load balancing) with different IP addresses, the dlg_db_sync() does not allow the loading of dialogs associated with PA from DB to the PB's memory. The error message is like dialog in DB does not match any listening sockets. It seems that dlg_db_sync() is not workable for my scenario. Can someone help me address this issue? Many thanks in advance. Sincerely, Chen-Che -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/Failover-and-dialog-termination-tp7584192p7584285.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] Failover and dialog termination
Hi Bogdan-Andrei, Thanks for your suggestion. However, I require two active proxy servers for better performance. The present solution is to add an additional column to the dialog table and update the caller_sock callee_sock before running dlg_db_sync(). The impact of such a behavior on performance remains to be investigated. Any better solution is very welcome. Thanks. Best wishes, Chen-Che -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/Failover-and-dialog-termination-tp7584192p7584302.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
[OpenSIPS-Users] It is possible to have a more flexible fix_nated_contact()?
Hi all, My scenario is caller-outbound proxy-proxy server-outbound proxy-callee. The outbound proxy will run topology_hiding/match_dialog() after receiving the requests returned from the proxy server. When I use some kind of Polycom video phone, PRACK requests triggered. Because 1) PRACK requests are sent ahead of 200 OK of callee and 2) match_dialog() works only after the outbound proxy processes the 200 OK, PRACK requests will be looped many times between the outbound proxy and the proxy server until the outbound proxy receives the 200 OK. A solution to this issue is having a flexible fix_nated_contact() to allow me to do something like ``fix_nated_contact(sip:$tU@OutboundProxyIP)''. I am wondering that it is possible for OpenSIPS to meet this requirement. Thanks. Best wishes, Chen-Che -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/It-is-possible-to-have-a-more-flexible-fix-nated-contact-tp7584303.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] Topology hiding and unsuccessful dialog termination
Hi Bogdan-Andrei, The topology_hiding() is executed at the proxy server to conceal the IP address of the proxy server. Thus, the dialog_match() is done at the proxy server rather than the proxy server. With the solution mentioned earlier, the proxy server is able to terminate the dialog successfully. If you require any information, please feel free to tell me. Thanks. Best wishes, Chen-Che -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/Topology-hiding-and-unsuccessful-dialog-termination-tp7584064p7584304.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] It is possible to have a more flexible fix_nated_contact()?
Hi Nick, Thanks for your reply. Your suggestion truly addresses my issue:) Sincerely, Chen-Che -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/It-is-possible-to-have-a-more-flexible-fix-nated-contact-tp7584303p7584308.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] Failover and dialog termination
Hi Schneur, Yes, the two proxy servers PA and PB are using the same database. And the db_mode regarding dialog is set to 1 to make each dialog be written into memory as well as the database. What do you mean master/master replication? Can you specify your method? Thanks so much. Best wishes, Chen-Che -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/Failover-and-dialog-termination-tp7584192p7584255.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] Topology hiding and unsuccessful dialog termination
Dear Bogdan-Andrei, Sorry for the late reply. My temporary solution is to use insert_hf(xxx, To) when the proxy server receives a BYE message without any route hdr. I forget to mention that in fact, the BYE message without any route hdr will be looped between the outbound proxy and the proxy server (as the attached files). I use $du = $ru at the outbound proxy to avoid the loop and make it relay to the caller. The attached files are the log generated at the proxy server and the captured packets at the outbound proxy and proxy server. Note that I comment $du=$ru at the outbound proxy to demonstrate the origincal case. Sincerely thanks for you help!! log_proxyserver http://opensips-open-sip-server.1449251.n2.nabble.com/file/n7584174/log_proxyserver Wireshark_outboundproxy http://opensips-open-sip-server.1449251.n2.nabble.com/file/n7584174/Wireshark_outboundproxy Wireshark_proxyserver http://opensips-open-sip-server.1449251.n2.nabble.com/file/n7584174/Wireshark_proxyserver Best regards, Chen-Che -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/Topology-hiding-and-unsuccessful-dialog-termination-tp7584064p7584174.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
[OpenSIPS-Users] Failover and dialog termination
Hi all, In my scenario, I have two proxy servers PA and PB and a number of RTP proxies. Basically, PA is active and PB is stand-by. For each RTP proxy, PA maintains a variable to keep track of how many ongoing sessions the RTP proxy is serving. When PA is down, PB needs to take over all the tasks of PA. However, when PB receives BYE requests, PB cannot find the corresponding dialogs and terminate them (a simple log is shown below). Jan 28 19:16:17 [16514] DBG:dialog:get_dlg: no dialog callid='8-11448@192.168.64.100' found Jan 28 19:16:17 [16514] DBG:dialog:dlg_onroute: Callid '8-11448@192.168.64.100' not found Can anyone tell me how to make PB terminate the corresponding dialogs and decrease the values of associated variables? I have set db_mode to 1 to try to enable PB to read the dialog table filled by PA. I am grateful for any help. Thanks. Best wishes, Chen-Che -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/Failover-and-dialog-termination-tp7584192.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] Topology hiding and unsuccessful dialog termination
Hi Bogdan-Andrei, I'm not familiar with B2B and thus do not use any B2B-related modules (eg., B2B_LOGIC and B2B_ENTITIES). In my scenario, the outbound proxy is only responsible for hiding the IP address of the proxy server by using topology_hiding(). All other functions such as user registration and authentication, dialog handling and RTP proxy offering are handled by the proxy server. The BYE message is correctly sent from the callee to the caller (callee-outbound proxy-proxy server-outbound proxy-caller). However, because topology hiding is invoked at the outbound proxy, the BYE message from the callee has no Route hdr. When receiving the BYE message forwarded by the outbound proxy, the proxy server cannot find the associated dialog due to that the BYE message has no Route hdr. So the proxy server fails to terminate the dialog associated with the received BYE message. I guess that topology hiding and dialog handling need to be done at the same SIP element using OpenSIPS. I hope that there exists some solution to make my scenario workable. Any suggestion is welcome. Thanks so much. Best regards, Chen-Che -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/Topology-hiding-and-unsuccessful-dialog-termination-tp7584064p7584090.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
[OpenSIPS-Users] Topology hiding and unsuccessful dialog termination
Hi all, I'm facing a problem as follows. The scenario is below. Proxy server Outbound proxy caller callee The packet flow from caller to callee is ``caller-outbound proxy-proxy server-outbound proxy-callee''. The outbound proxy invokes topology_hiding() and match_dialog() to prevent the call from knowing the IP address of the proxy server and enable successful packet forwarding. In this scenario, the proxy server must call record_route() when receiving an INVITE message. Otherwise, the BYE message from the caller will not go under loose_route() and thus the corresponding dialog will not be terminated. With record_route(), the BYE message from caller can be handled properly by the proxy server. However, my issues is that *the BYE message from callee* (no route field in the header) cannot be handled successfully so that the proxy server does not terminate the corresponding dialog (as I wish). Please kindly help to solve this problem. Many thanks in advance. Best regards, Chen-Che -- View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/Topology-hiding-and-unsuccessful-dialog-termination-tp7584064.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users