[OpenSIPS-Users] problem loading dialogs from dbtext

Bogdan-Andrei Iancu bogdan at opensips.org
Thu Oct 24 10:08:40 CEST 2013


Hi Jeff,

The TO and FROM replacements can be signalling based (storing a cookie
in RR hdr) or dialog based (storing the values in the dialog). Which one
is used depends on the order of your ops - if you create the dialog
before the replacements, then the dialog support will be used. How is it
in your case ?

The signaling based replacement is not affected by restarts (as values
are stored in RR/R hdr) - of course, as time as sequential requests hit
the loose_route() stuff.

Regards,

Bogdan-Andrei Iancu
OpenSIPS Founder and Developer
http://www.opensips-solutions.com


On 10/24/2013 05:48 AM, Jeff Pyle wrote:
> Bogdan,
>
> Next problem... URI replacements don't carry through to in-dialog
> transactions if there is an Opensips restart during the dialog.
>
> I use uac_replace_to() and uac_replace_from() in branch_routes in my
> script.  On a call with no restart between the INVITE and BYE
> transactions, all is well -- those functions make their replacements
> on the initial INVITE, and those replacements carry through to future
> in-dialog transactions (like a BYE).  If I restart Opensips between
> the INVITE and the BYE, the BYE doesn't receive the replacements.
>
> In my particular case this causes upstream uac:replace_uri errors in
> an Opensips 1.6 system since the local and remote URIs for the dialog
> have changed.
>
> Let me know if you need any particular debugs or traffic captures.
>
>
> - Jeff
>
>
>
> On Wed, Oct 23, 2013 at 11:30 AM, Bogdan-Andrei Iancu
> <bogdan at opensips.org <mailto:bogdan at opensips.org>> wrote:
>
>     Hi Jeff,
>
>     Thanks for your input and help - I found and fixed the bug - the
>     fix was tested and uploaded on GIT.
>     Please put back the dialog table spec from the sources (with
>     "long" definition to the dlg_id column) and give it a fresh start.
>
>     Regards,
>
>     Bogdan-Andrei Iancu
>     OpenSIPS Founder and Developer
>     http://www.opensips-solutions.com
>
>
>     On 10/22/2013 10:25 PM, Jeff Pyle wrote:
>>     I think I've found part of it.  On line 536 of
>>     modules/db_text/dbt_file.c it reads 'bigint'.  'bigint' is read
>>     as a blob; it seems 'long' is the correct word to read the 'l'
>>     for DB_BIGINT (line 198).
>>
>>     Making that change helps, but now there is a new problem:
>>
>>         ERROR:dialog:load_dialog_info_from_db: inconsistent hash data
>>         in the dialog database: you may have restarted opensips using
>>         a different hash_size: please erase dialog database and restart
>>         db : 869, dlg : 1919252015
>>
>>
>>     Obviously 869 != 1919252015, but I haven't found where those
>>     numbers come from.  And the hash_size hasn't actually changed.
>>      Line 565 of modules/dialog/dbt_db_handler.c is the complainer.
>>
>>     Perhaps another misbehaving column type in the db_text table?
>>
>>
>>     - Jeff
>>
>>
>>
>>     On Tue, Oct 22, 2013 at 11:24 AM, Jeff Pyle
>>     <jpyle at fidelityvoice.com <mailto:jpyle at fidelityvoice.com>> wrote:
>>
>>         Bogdan and team,
>>
>>         This is on a 1.9 build from October 17, plus the recently
>>         committed change to the dialog table schema in dbtext.
>>
>>         Here's the scenario...  After a fresh Opensips start, I place
>>         a call through it.  A dialog is established.  I stop Opensips
>>         after about five seconds and verify the contents of the
>>         dialog table file:
>>
>>             dlg_id(bigint) callid(string) from_uri(string)
>>             from_tag(string) to_uri(string) to_tag(string)
>>             mangled_from_uri(string,null) mangled_to_uri(string,null)
>>             caller_cseq(string) callee_cseq(string)
>>             caller_ping_cseq(int) callee_ping_cseq(int)
>>             caller_route_set(string,null)
>>             callee_route_set(string,null) caller_contact(string)
>>             callee_contact(string) caller_sock(string)
>>             callee_sock(string) state(int) start_time(int)
>>             timeout(int) vars(string,null) profiles(string,null)
>>             script_flags(int) flags(int)
>>             8672076440446:662bbb7a-8f52-4c26-adaa-6f2f5f870751:.....remaining
>>             fields for dialog record.....
>>
>>
>>         I again start Opensips.  I see this in the log (debug=3):
>>
>>             ERROR:dialog:load_dialog_info_from_db: column dlg_id
>>             cannot be null/has wrong type 6 -> skipping
>>
>>
>>         One interesting note, when Opensips starts the dlg_id column
>>         is defined with 'long'.  After Opensips exits, it has
>>         'bigint' type.  I don't know if that's relevant.
>>
>>
>>         - Jeff
>>
>>
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.opensips.org/pipermail/users/attachments/20131024/edee3fef/attachment-0001.htm>


More information about the Users mailing list