[SR-Users] Kamailio Routing Logic

Paul Smith paul.smith at claritytele.com
Thu Nov 13 10:28:37 CET 2014


Hi Zaka
You have misunderstood this line : if (!t_relay()) {

That line explicitly calls t_relay() and the packet is relayed at that time.  If the packet cannot be relayed then the t_relay() function returns an error and the conditional block is executed.

Paul Smith



On 13 Nov 2014, at 09:10, Zaka Ul Isam <Zaka.Ul at albtelecom.al> wrote:

> Morning Paul:
> 
> Thanks a million, mate!
> So, if I understood correctly, in the: 
> 
> if (!t_relay()) {
> sl_reply_error();
> 
> !t_relay will check the error condition in sending out the stateful message.  However, in this code snippet, t_relay is not explicitly called. Therefore, as in kamailio-advanced-config, route[relay] should be performing this. 
> 
> But it is not the case. Instead the main routing block first calls several other routes:
> 
> route(REQINIT);
> route(NATDETECT);
> 
> and then # CANCEL processing
>     if (is_method("CANCEL")) {
>         if (t_check_trans())   ????????
>             t_relay();
>         exit;
> 
> Please forgive my ignorance, but I am baffled here.
> 
> The next occurrence of t_relay is:
> 
> if ( is_method("ACK") ) {
>         if ( t_check_trans() ) {
>             # no loose-route, but stateful ACK;
>             # must be an ACK after a 487
>             # or e.g. 404 from upstream server
>             t_relay();
>             exit;
> 
> 
> Many anticipatory thanks again!
> 
> Have an awesome day!
> 
> Zaka
> 
> ________________________________________
> From: sr-users-bounces at lists.sip-router.org [sr-users-bounces at lists.sip-router.org] on behalf of Paul Smith [paul.smith at claritytele.com]
> Sent: Thursday, November 13, 2014 9:38 AM
> To: sr-users at lists.sip-router.org
> Subject: Re: [SR-Users] Kamailio Routing Logic
> 
> Hi Zaka,
> The stageful forwarding takes place in the t_relay() function. If relaying is unsuccessful then an error is returned and the conditional block executed to send an error back to the originator using sl_reply_error().
> 
> Your other question is about why to use the call to route(1): Yes you could just put the content of route[1] into the main route block and it would work fine. In more complex scripts it is neater to put code which is executed in lots of different place into a separate block and then call the block. That way if you need to modify that code you only have one place to maintain. The t_relay() function is a good example of a block of functionality that is reached from loads of places … so generally a route[relay] block is a good idea.
> 
> Paul Smith
> 
> On 13 Nov 2014, at 07:52, Zaka Ul Isam <Zaka.Ul at albtelecom.al> wrote:
> 
> > Hello Friends and Gurus:
> >
> > I am struggling with routing and need a bit of clarification WRT following:
> >
> > route {
> > if ($fU=="601"&&is_method("INVITE"))
> > record_route();
> > rewritehost("10.0.10.111"); //SS IP
> > route(1);
> > }
> > route[1] {
> > # send it out now; use stateful forwarding as it works reliably
> > # even for UDP2TCP
> > if (!t_relay()) {
> > sl_reply_error();
> > };
> > exit;
> > }
> > * In the above stateful forwarding what is the rationale of calling route (1) within main route block? Could the t_relay statement afyer rewriting the host part of URI not have performed the stateful forwarding?
> >
> > ** In route[1] there is is only an expression abt logical not condition about t_relay() (if methods in this function are not invoked??)
> > I wonder where exactly is stateful forwarding taking place?
> >
> > 1- Is it the default action?
> > 2- Or in function sl_reply_error()?
> >
> > Thanks a lot in advance!
> >
> > Zaka
> >
> > ________________________________
> >
> > Albtelecom & Eagle Mobile invite you to protect together the Environment. Please do not print the e-mail unless really necessary.
> >
> > Albtelecom & Eagle Mobile iu ftojnë të mbrojmë së bashku Mjedisin. Lutemi të mos e printoni këtë komunikim elektronik nëse nuk është vërtet i nevojshëm.
> >
> > ________________________________
> >
> > This e-mail and any files transmitted with it are confidential and intended solely for the use of the addressee/s. If you are not the intended recipient you are hereby notified that any dissemination, forwarding, copying or use of any of the information is strictly prohibited. If you receive this e-mail in error, please notify the sender immediately and delete it! Albtelecom makes no warranty as to the accuracy or completeness of any information contained in this message and hereby excludes any liability of any kind for the information contained therein or for the information transmission, reception, storage or use of such in any way whatsoever. The opinions expressed in this message may belong to sender alone and may not necessarily reflect the opinions of Albtelecom. Albtelecom shall bear no liability for any loss or damage caused by software or e-mail viruses.
> >
> > Ky mesazh dhe çdo informacion i transmetuar në përmbajtje te këtij mesazhi është konfidencial dhe është i destinuar vetëm për marrësin e destinuar. Nëse nuk jeni marrësi i destinuar, Ju bëjmë me dije se çdo përhapje, transmetim, kopjim apo përdorim i çdo informacioni është i ndaluar. Nëse e merrni këtë mesazh gabimisht, ju lutem kontaktoni urgjentisht nisësin e tij dhe fshijeni atë. Albtelecom nuk jep asnjë garanci për saktësinë apo plotësinë e informacionit në përmbajtje të këtij mesazhi dhe nuk mban asnjë përgjegjësi për informacionin e përmbajtur, transmetimin, marrjen, ruajtjen apo përdorimin e tij në çfarëdolloj mënyre. Mendimet e shprehura në këtë mesazh mund t'i përkasin vetë nisësit dhe nuk mund të reflektojnë domosdoshmërisht qëndrimet e Albtelecom. Albtelecom nuk do të mbaje asnjë përgjegjësi për humbje ose dëme te shkaktuara nga programet apo viruset.
> > _______________________________________________
> > SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
> > sr-users at lists.sip-router.org
> > http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
> 
> 
> _______________________________________________
> SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
> sr-users at lists.sip-router.org
> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
> _______________________________________________
> SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
> sr-users at lists.sip-router.org
> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sip-router.org/pipermail/sr-users/attachments/20141113/10282250/attachment.html>


More information about the sr-users mailing list