[OpenSIPS-Users] SIP trace and OpenSIPS-CP 2.0

Bogdan-Andrei Iancu bogdan at voice-system.ro
Fri Oct 9 08:51:44 CEST 2009


Hi Marc,

sip_trace() traces only the current request - that's it; to trace the 
whole transaction (the replies also), you need to set the tracing flag 
(http://www.opensips.org/html/docs/modules/1.5.x/siptrace.html#id227228) 
also:
    seflag(NN);
    sip_trace();

Regards,
Bogdan

marcher wrote:
> Hi Bogdan,
>
> Again, thanks for the help.
>
> I want to capture all ingress and egress traffic for now. So I put
> sip_trace(); at the very start of the main request routing logic. This
> worked great for incoming methods REGISTER, INVITE, OPTIONS, ACK and BYE.
>
> When tracing is enabled via opensips-cp I see the methods, and can click on
> Call to expand to see all the messages.
>
> However, I don't see any egress messages, either outgoing requests or 1xx,
> 2xx, 4xx responses from opensips in the opensips-cp table.
>
> I tried adding sip_trace() to opensips.cfg as follows but no dice. I guess I
> didn't understand what your suggestion "just before sending the request out"
> actually means in terms of opensips.cfg
>
> route[1] {
>
>         # for INVITEs enable some additional helper routes
>         if (is_method("INVITE")) {
>                 t_on_branch("2");
>                 t_on_reply("2");
>                 t_on_failure("1");
>         }
>
>
>         sip_trace();
>
>         if (!t_relay()) {
>                 sl_reply_error();
>         };
>         exit;
> }
>
> I completely understand about not having a standard config that covers all
> the possibilities opensips-cp can control.
>
> I do wish to use drouting such that I can conveniently add new phone number
> prefixes and have them route to gateways via opensips-cp. But I also wish
> this functionality to work with calls to endpoints directly registered with
> opensips.
>
> If I add the do_routing logic before the usrloc lookup logic, I get a 503
> for a call to a valid registered endpoint.
>
>         xlog("-----Doing routing\n");
>
>         if (!do_routing("1")) {
>                 sl_send_reply("503","No destination available");
>                 exit;
>         }
>
>         xlog("-----gw attr is $avp(s:dr_attrs)\n");
>         xlog("-----ruri is $ru\n");
>
>         if (!lookup("location")) {
>                 switch ($retcode) {
>                         case -1:
>                         case -3:
>                                 t_newtran();
>                                 t_reply("404", "Not Found");
>                                 exit;
>                         case -2:
>                                 sl_send_reply("405", "Method Not Allowed");
>                                 exit;
>                 }
>         }
>
>         # when routing via usrloc, log the missed calls also
>         setflag(2);
>
>         route(1);
>
>
> If I add the do_routing logic after the usrloc lookup logic, I get a 404
> from case -3 for a call destined for a gateway.
>
> How can I setup my opensips.cfg such that calls to registered endpoints and
> calls to gateway hosted numbers work in conjunction?
>
> Cheers,
>
> Marc
>
>
> Bogdan-Andrei Iancu wrote:
>   
>> Hi Marc,
>>
>>
>> marcher wrote:
>>     
>>> Hi Bogdan,
>>>
>>> I appreciate you taking the time to answer my basic questions in getting
>>> opensips-cp functional with my opensips implementation.
>>>
>>> I had read the link you included, but its still not clear to me where the
>>> sip_trace function should be called within the opensips config file.
>>>   
>>>       
>> there is not special place for it - you need to call the sip_trance() 
>> and set the trace flag when you process the SIP requests - you can do 
>> this in the very beginning of the script or just before sending the 
>> request out - it is up to you and up to what kind of traffic you want to 
>> trace.
>>
>> For example, if you want to trace only calls to your local subscribers, 
>> you can add the sip_trace() in the if (ruri==myself) {} block.
>>     
>>> My opensips config file is very straightforward, based heavily on the
>>> distribution sample, but adding piecemeal the config necessary to
>>> integrate
>>> opensips-cp (mi_xmlrpc, dialplan, drouting and siptrace modules to date)
>>> I
>>> also wish to add in SIP trunking gateways using drouting.
>>>   
>>>       
>> you do not need to put in the opensips script all the functionalities 
>> required by opensips-cp. You can select in opensips-cp only the tools 
>> you find useful in your opensips script. If you do not need drouting in 
>> opensips cfg, simply remove the drouting tool from CP.
>>     
>>> To that end, I am also struggling with the correct opensips config to
>>> implement drouting such that it works in tandem with the lookup(location)
>>> functionality.
>>>   
>>>       
>> Could you describe a bit more the logic you want here?
>>     
>>> Does there exist a sample config that I could work from that would
>>> achieve
>>> these goals? I'm surprised the folks that produced opensips-cp didn't
>>> post
>>> an opensips config file that would successfully work in tandem with their
>>> GUI.
>>>   
>>>       
>> because this is impossible :)...opensips-cp allows you to provision some 
>> functionality blocks (like dialplan, drouting, nathelper, permissions, 
>> etc). In your opensips cfg you can combine in millions of ways these 
>> block to get different overall routing logic.
>>
>> Regards,
>> Bogdan
>>
>>     
>>> Thanks again.
>>>
>>> Cheers,
>>>
>>> Marc
>>>
>>>
>>> Bogdan-Andrei Iancu wrote:
>>>   
>>>       
>>>> Hi Marc,
>>>>
>>>> loading the siptrace module is not enough. You need to use the 
>>>> sip_trace() function and set the trace_flag (for transaction tracing).
>>>> See:
>>>>    
>>>> http://www.opensips.org/html/docs/modules/1.5.x/siptrace.html#id228291
>>>>
>>>> Best regards,
>>>> Bogdan
>>>>
>>>> marcher wrote:
>>>>     
>>>>         
>>>>> Hi,
>>>>>
>>>>> Trying to get sip trace functionality on opensips-cp working also. 
>>>>>
>>>>> Toggling the trace on and off from the web interface appears to be
>>>>> working
>>>>> fine.
>>>>>
>>>>> Oct  7 13:08:59 [2332] DBG:mi_xmlrpc:default_method: starting up.....
>>>>> Oct  7 13:08:59 [2332] DBG:mi_xmlrpc:default_method: done looking the
>>>>> mi
>>>>> command.
>>>>> Oct  7 13:08:59 [2332] DBG:mi_xmlrpc:default_method: done parsing the
>>>>> mi
>>>>> tree.
>>>>> Oct  7 13:08:59 [2332] DBG:mi_xmlrpc:default_method: done running the
>>>>> mi
>>>>> command.
>>>>> Oct  7 13:08:59 [2332] DBG:mi_xmlrpc:default_method: done building
>>>>> response.
>>>>>
>>>>> However, nothing gets written to the mysql db siptrace table. 
>>>>>
>>>>> Hence, nothing gets written to the siptrace table on opensip-cp.
>>>>>
>>>>> I'm testing it with SJPhone registering to opensips from the same local
>>>>> machine.
>>>>>
>>>>> I added the following parameters to opensips.cfg
>>>>>
>>>>> loadmodule "siptrace.so"
>>>>>
>>>>> #------ siptrace db url ----
>>>>> modparam("siptrace", "db_url","mysql://root:######@localhost/opensips")
>>>>>
>>>>> Is this the correct format for the siptrace db_url? 
>>>>>
>>>>> The only thing I see in the log that looks related is:
>>>>>
>>>>> Oct  7 13:02:53 [2324] DBG:siptrace:trace_sl_onreply_out: trace off...
>>>>>
>>>>> For the drouting module, I have the db_url configured as 
>>>>>
>>>>> modparam("drouting",
>>>>> "db_url","mysql://opensips:opensipsrw@localhost/opensips")
>>>>>
>>>>> I did try changing the siptrace db_url to this format, but it didn't
>>>>> work
>>>>> either.
>>>>>
>>>>> Any help greatly appreciated.
>>>>>
>>>>> Cheers,
>>>>>
>>>>> Marc
>>>>>
>>>>>
>>>>> Iulia Bublea-2 wrote:
>>>>>   
>>>>>       
>>>>>           
>>>>>> Load the siptrace module in the opensips.cfg and set the db parameter.
>>>>>>
>>>>>> Iulia
>>>>>>
>>>>>> Gavin Henry wrote:
>>>>>>     
>>>>>>         
>>>>>>             
>>>>>>> Quick one,
>>>>>>>
>>>>>>> I presume you need the sip_trace function in the right place and that
>>>>>>> you just toggle it on/off via the cp?
>>>>>>>
>>>>>>> Also, you will need the db_url if logging to mysql?
>>>>>>>
>>>>>>> Thanks.
>>>>>>>
>>>>>>>   
>>>>>>>
>>>>>>>               




More information about the Users mailing list