[OpenSIPS-Users] OpenSIPS terminates when executing dlg_db_sync

Vlad Paiu vladpaiu at opensips.org
Tue Feb 26 16:13:41 CET 2013


Hi Microx,

Then probably the crash happens because you are manually updating the DB 
info before calling dlg_db_sync ?
Not sure if I understand your scenario entirely, but since the BYE will 
reach the second server, then I assume it has the IP that previously 
belonged to server1, right ?

In such a case, you shouldn't have to update stuff manually in the DB, 
just detect server1's failure and call dlg_db_sync, and things should 
auto-magically work, again, assuming you are moving IPs from one server 
to another.

Best Regards,

Vlad Paiu
OpenSIPS Developer
http://www.opensips-solutions.com


On 02/26/2013 04:15 PM, microx wrote:
> 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 at lists.opensips.org
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users



More information about the Users mailing list