[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