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...@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-boun...@lists.sip-router.org > [sr-users-boun...@lists.sip-router.org] on behalf of Paul Smith > [paul.sm...@claritytele.com] > Sent: Thursday, November 13, 2014 9:38 AM > To: sr-users@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...@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@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@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@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@lists.sip-router.org http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users