[OpenSIPS-Users] Opensips drouting probing
Bogdan-Andrei Iancu
bogdan at opensips.org
Tue Apr 4 09:22:21 EDT 2017
Do you do an "drop" or "exit" in that routeid ??
Bogdan-Andrei Iancu
OpenSIPS Founder and Developer
http://www.opensips-solutions.com
OpenSIPS Summit May 2017 Amsterdam
http://www.opensips.org/events/Summit-2017Amsterdam.html
On 04/04/2017 03:16 PM, Denis wrote:
> Bogdan,
> Ok, dr_rules has filled 'routeid' column.
> In routeid i, using dialplan, verify dialed prefix for some reason. If
> dialed prefix verified i make some action, if not, returns to the
> parent route.
> In my example, dialed prefix does not verified.
> So, route with do_routing
> 951: xlog ("Prepare routing");
> 952: if (!do_routing("$avp(5)",,,"$avp(300)","$avp(3)",)) {
> 953: send_reply("404", "Not found");
> 954: exit;
> 955: }
> route [routeid] {
> 1848: if (dp_translate("20004", "$rU/$rU", "$avp(999)")) {
>
> ........
> } else {
> ......
> }
> 1867: }
> The last strings for the call flow in syslog:
> :951][me][core xlog]
> :952][me][module do_routing]
> :1867][me][core if]
> :1848][me][module dp_translate]
> INFO:drouting:do_routing: All the gateways are disabled
> That is all. After that only my CANCEL from the caller, because there
> is no provisioning message after 100 Trying from Opensips.
> --
> С уважением, Денис.
> Best regards, Denis
> 04.04.2017, 14:14, "Bogdan-Andrei Iancu" <bogdan at opensips.org>:
>> Hi Denis,
>>
>> Again, as drouting is not doing any signalling action, it CANNOT
>> block/freeze your OpenSIPS.
>>
>> Use script_trace() function to see how your INVITE is handled :
>> http://www.opensips.org/Documentation/Script-CoreFunctions-2-2#toc43
>>
>> Regards,
>> Bogdan-Andrei Iancu
>> OpenSIPS Founder and Developer
>> http://www.opensips-solutions.com <http://www.opensips-solutions.com/>
>>
>> OpenSIPS Summit May 2017 Amsterdam
>> http://www.opensips.org/events/Summit-2017Amsterdam.html
>> On 03/28/2017 04:46 PM, Denis via Users wrote:
>>> In additional,
>>> a part of the opensips.cfg
>>> xlog ("Prepare routing");
>>> if (!do_routing("$avp(5)","W",,"$avp(300)","$avp(3)",)) {
>>> send_reply("404", "Not found");
>>> exit;
>>> }
>>> a part of the log
>>> Mar 28 09:38:28 ubuntu-amd64
>>> /usr/local/opensips2.2/sbin/opensips[7170]: Prepare routing
>>> Mar 28 09:38:28 ubuntu-amd64
>>> /usr/local/opensips2.2/sbin/opensips[7170]:
>>> DBG:drouting:do_routing_1: using weights in GW selection
>>> Mar 28 09:38:28 ubuntu-amd64
>>> /usr/local/opensips2.2/sbin/opensips[7170]: DBG:drouting:do_routing:
>>> using dr group 2, rule_idx 0, username 88123364021
>>> Mar 28 09:38:28 ubuntu-amd64
>>> /usr/local/opensips2.2/sbin/opensips[7170]:
>>> DBG:drouting:internal_check_rt: found rgid 2 (rule list 0x7f77f0f63188)
>>> Mar 28 09:38:28 ubuntu-amd64
>>> /usr/local/opensips2.2/sbin/opensips[7170]:
>>> DBG:dialplan:dp_translate_f: dpid is 20004 partition is default
>>> Mar 28 09:38:28 ubuntu-amd64
>>> /usr/local/opensips2.2/sbin/opensips[7170]:
>>> DBG:dialplan:dp_get_svalue: searching 15
>>> Mar 28 09:38:28 ubuntu-amd64
>>> /usr/local/opensips2.2/sbin/opensips[7170]:
>>> DBG:dialplan:dp_translate_f: input is 88123364021
>>> Mar 28 09:38:28 ubuntu-amd64
>>> /usr/local/opensips2.2/sbin/opensips[7170]:
>>> DBG:dialplan:dp_translate_f: Checking with dpid 20004
>>> Mar 28 09:38:28 ubuntu-amd64
>>> /usr/local/opensips2.2/sbin/opensips[7170]: DBG:dialplan:translate:
>>> Regex operator testing. Got result: -1
>>> Mar 28 09:38:28 ubuntu-amd64
>>> /usr/local/opensips2.2/sbin/opensips[7170]: DBG:dialplan:translate:
>>> No matching rule for input 88123364021
>>> Mar 28 09:38:28 ubuntu-amd64
>>> /usr/local/opensips2.2/sbin/opensips[7170]:
>>> DBG:dialplan:dp_translate_f: could not translate 88123364021 with
>>> dpid 20004
>>> Mar 28 09:38:28 ubuntu-amd64
>>> /usr/local/opensips2.2/sbin/opensips[7170]:
>>> INFO:drouting:do_routing: All the gateways are disabled
>>> Mar 28 09:38:28 ubuntu-amd64
>>> /usr/local/opensips2.2/sbin/opensips[7170]:
>>> DBG:dialog:next_state_dlg: unref dlg 0x7f77f3c8bc70 with 1 -> 2 in
>>> entry 0x7f77ef003548
>>> Mar 28 09:38:28 ubuntu-amd64
>>> /usr/local/opensips2.2/sbin/opensips[7170]: DBG:core:evi_param_set:
>>> adding string param
>>> Mar 28 09:38:28 ubuntu-amd64
>>> /usr/local/opensips2.2/sbin/opensips[7170]: DBG:core:evi_param_set:
>>> adding string param
>>> Mar 28 09:38:28 ubuntu-amd64
>>> /usr/local/opensips2.2/sbin/opensips[7170]: DBG:core:evi_param_set:
>>> adding int param
>>> Mar 28 09:38:28 ubuntu-amd64
>>> /usr/local/opensips2.2/sbin/opensips[7170]: DBG:core:evi_param_set:
>>> adding int param
>>> Mar 28 09:38:28 ubuntu-amd64
>>> /usr/local/opensips2.2/sbin/opensips[7170]:
>>> DBG:core:destroy_avp_list: destroying list (nil)
>>> Mar 28 09:38:28 ubuntu-amd64
>>> /usr/local/opensips2.2/sbin/opensips[7170]:
>>> DBG:dialog:next_state_dlg: dialog 0x7f77f3c8bc70 changed from state
>>> 1 to state 5, due event 1
>>> Mar 28 09:38:28 ubuntu-amd64
>>> /usr/local/opensips2.2/sbin/opensips[7170]: DBG:dialog:dlg_onreply:
>>> dialog 0x7f77f3c8bc70 failed (negative reply)
>>> Mar 28 09:38:28 ubuntu-amd64
>>> /usr/local/opensips2.2/sbin/opensips[7170]: DBG:dialog:unref_dlg:
>>> unref dlg 0x7f77f3c8bc70 with 1 -> 1 in entry 0x7f77ef003548
>>> Mar 28 09:38:28 ubuntu-amd64
>>> /usr/local/opensips2.2/sbin/opensips[7170]: DBG:dialog:unref_dlg:
>>> unref dlg 0x7f77f3c8bc70 with 1 -> 0 in entry 0x7f77ef003548
>>> Mar 28 09:38:28 ubuntu-amd64
>>> /usr/local/opensips2.2/sbin/opensips[7170]: DBG:dialog:unref_dlg:
>>> ref <=0 for dialog 0x7f77f3c8bc70
>>> Mar 28 09:38:28 ubuntu-amd64
>>> /usr/local/opensips2.2/sbin/opensips[7170]: DBG:dialog:destroy_dlg:
>>> destroying dialog 0x7f77f3c8bc70
>>> Mar 28 09:38:28 ubuntu-amd64
>>> /usr/local/opensips2.2/sbin/opensips[7170]: DBG:dialog:destroy_dlg:
>>> dlg expired or not in list - dlg 0x7f77f3c8bc70 [1301:1538288757]
>>> with clid '84253MzdiNGJmNzcwYjI1OTE2NmE2ZDUyNGJmZWJiYWQ3NTM' and
>>> tags '2c479443' 'NULL'
>>> Mar 28 09:38:28 ubuntu-amd64
>>> /usr/local/opensips2.2/sbin/opensips[7170]:
>>> DBG:core:destroy_avp_list: destroying list 0x7f77f3c8ed08
>>> Mar 28 09:38:28 ubuntu-amd64
>>> /usr/local/opensips2.2/sbin/opensips[7170]: DBG:core:receive_msg:
>>> cleaning up
>>> --
>>> С уважением, Денис.
>>> Best regards, Denis
>>> 28.03.2017, 13:00, "Denis" <denis7979 at mail.ru
>>> <mailto:denis7979 at mail.ru>>:
>>>> Hello, Bogdan!
>>>> Is there any idea about problem?
>>>> Thank you.
>>>> --
>>>> С уважением, Денис.
>>>> Best regards, Denis
>>>> 24.03.2017, 07:52, "Denis" <denis7979 at mail.ru
>>>> <mailto:denis7979 at mail.ru>>:
>>>>> Hello!
>>>>> It does not work.
>>>>> Opensips "freezes" a call.
>>>>> In syslog i see "INFO:drouting:do_routing: All the gateways are
>>>>> disabled"
>>>>> --
>>>>> С уважением, Денис.
>>>>> Best regards, Denis
>>>>> 23.03.2017, 18:42, "Bogdan-Andrei Iancu" <bogdan at opensips.org
>>>>> <mailto:bogdan at opensips.org>>:
>>>>>> Hi,
>>>>>>
>>>>>> You should do :
>>>>>> if (!do_routing(.......) ) {
>>>>>> send_reply("404","No Route");
>>>>>> exit;
>>>>>> }
>>>>>>
>>>>>> Regards,
>>>>>> Bogdan-Andrei Iancu
>>>>>> OpenSIPS Founder and Developer
>>>>>> http://www.opensips-solutions.com
>>>>>> <http://www.opensips-solutions.com/>
>>>>>>
>>>>>> OpenSIPS Summit May 2017 Amsterdam
>>>>>> http://www.opensips.org/events/Summit-2017Amsterdam.html
>>>>>> On 03/23/2017 04:21 PM, Denis wrote:
>>>>>>> Hello, Bogdan!
>>>>>>> "test the return code for do_routing()".
>>>>>>> How can i do that?
>>>>>>> I tried
>>>>>>> if (!do_routing("$avp(5)","W",,"$avp(300)","$avp(3)",)) {
>>>>>>> xlog ("Route4: Reason = $rc");
>>>>>>> }
>>>>>>> but can see in log only "INFO:drouting:do_routing: All the
>>>>>>> gateways are disabled".
>>>>>>> Thank you.
>>>>>>> --
>>>>>>> С уважением, Денис.
>>>>>>> Best regards, Denis
>>>>>>> 20.03.2017, 17:20, "Bogdan-Andrei Iancu" <bogdan at opensips.org>
>>>>>>> <mailto:bogdan at opensips.org>:
>>>>>>>> Failure route does not help you if your routing does not start
>>>>>>>> at all - if do_routing() returns negative. Again, in request
>>>>>>>> route, test the return code for do_routing() - it will return a
>>>>>>>> negative code if no destination is available for routing.
>>>>>>>>
>>>>>>>> Regards,
>>>>>>>> Bogdan-Andrei Iancu
>>>>>>>> OpenSIPS Founder and Developer
>>>>>>>> http://www.opensips-solutions.com
>>>>>>>> <http://www.opensips-solutions.com/>
>>>>>>>>
>>>>>>>> OpenSIPS Summit May 2017 Amsterdam
>>>>>>>> http://www.opensips.org/events/Summit-2017Amsterdam.html
>>>>>>>> On 03/20/2017 02:28 PM, Denis wrote:
>>>>>>>>> Hello, Bogdan!
>>>>>>>>> Yes, i know about that.
>>>>>>>>> In failure_route i have
>>>>>>>>> if (($DLG_status == 1) && t_check_status("408"))
>>>>>>>>> action. And it works if i have multiple direction (using
>>>>>>>>> alternative mode) for the prefix.
>>>>>>>>> But when i use only one direction for the prefix i have the
>>>>>>>>> problem described below.
>>>>>>>>> Thank you.
>>>>>>>>> --
>>>>>>>>> С уважением, Денис.
>>>>>>>>> Best regards, Denis
>>>>>>>>> 20.03.2017, 15:24, "Bogdan-Andrei Iancu" <bogdan at opensips.org>
>>>>>>>>> <mailto:bogdan at opensips.org>:
>>>>>>>>>> Hi Denis,
>>>>>>>>>>
>>>>>>>>>> I suspect a scripting error on your side. If all the
>>>>>>>>>> destinations are disabled, the do_routing() returns a
>>>>>>>>>> negative code into the script - you need to handle this case
>>>>>>>>>> and send back whatever negative reply you want. The Drouting
>>>>>>>>>> modules does not do any SIP signalling for you.
>>>>>>>>>>
>>>>>>>>>> Best regards,
>>>>>>>>>> Bogdan-Andrei Iancu
>>>>>>>>>> OpenSIPS Founder and Developer
>>>>>>>>>> http://www.opensips-solutions.com
>>>>>>>>>> <http://www.opensips-solutions.com/>
>>>>>>>>>>
>>>>>>>>>> OpenSIPS Summit May 2017 Amsterdam
>>>>>>>>>> http://www.opensips.org/events/Summit-2017Amsterdam.html
>>>>>>>>>> On 03/17/2017 07:50 AM, Denis via Users wrote:
>>>>>>>>>>> Hello!
>>>>>>>>>>> According to drouting module documentation i am trying to
>>>>>>>>>>> introduce a probing feature to control destination SIP UA
>>>>>>>>>>> access.
>>>>>>>>>>> Almost everything works correct, besides one thing.
>>>>>>>>>>> If i have only one destination, which became inaccessible,
>>>>>>>>>>> Opensips "freezes" a call, i.e. it sends 100 trying (script
>>>>>>>>>>> logging) and after does not sent any code (i expected, that
>>>>>>>>>>> Opensips will sent 408 code in such situation after
>>>>>>>>>>> fr_timeout triggering).
>>>>>>>>>>> Inaccessible destination has "probing" status and i see
>>>>>>>>>>> OPTIONS sent by Opensis to destination.
>>>>>>>>>>> Server:: OpenSIPS (2.2.3 (x86_64/linux))
>>>>>>>>>>> Thank you for any help.
>>>>>>>>>>> --
>>>>>>>>>>> С уважением, Денис.
>>>>>>>>>>> Best regards, Denis
>>>>>>>>>>> _______________________________________________
>>>>>>>>>>> Users mailing list
>>>>>>>>>>> Users at lists.opensips.org <mailto:Users at lists.opensips.org>
>>>>>>>>>>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>>> _______________________________________________
>>> Users mailing list
>>> Users at lists.opensips.org <mailto:Users at lists.opensips.org>
>>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.opensips.org/pipermail/users/attachments/20170404/e8725d77/attachment-0001.html>
More information about the Users
mailing list