Thread: [OpenSIPStack] EnumLookUp Routing Problem
Brought to you by:
joegenbaclor
From: Yogesh C. <ych...@gm...> - 2007-11-06 12:21:01
|
Hi, I want to configure OpenSbc such as it first call using enumlookup and if it fail then it should call through my voip provider. I have done setting in B2BUA Route section as : [sip:*] enum:mydomain.com \\First <file://First/> Preference : [sip:*@192.168.96.112] sip:sip.gafachi.com \\Second <file://Second/>preference if first get failed: I dial a number that is not in DNS Opensbc try to resolve this 3 time then give response "no such name" and then create a Invite request As: SIP/SDP Request: INVITE enum:141...@e1... how can i achieve that in case of enumLookup fail it send request using my voip Provider. Yogesh |
From: Yogesh C. <ych...@gm...> - 2007-11-12 11:27:19
|
hi, Thanks for reply *Use a comma delimited list for your route instead of having separate route entries. The sample route below will allow you to route to enum, then to 192.168... and finally to gafachi. [sip:*] enum:**mydomain.com* <http://mydomain.com/>*, sip:**192.168.96.112*<http://192.168.96.112/> *, sip:** gafachi.com* <http://gafachi.com/> ////////////////// I have tried to do and give setting in B2BUA route as : Route_1 : [sip:*] validnumber.com, sip:sip.gafachi.com but after getting Enum Lookup fail it create a URI like SIP/SDPRequest: INVITE enum:141...@va...<141...@va...> (according to wireshark) After looking in source code i found that : In *Route.cxx *class in *FindRoute* function it do not change the SIPURI structure in case of enumlookup fail and working as : Route.cxx Line 377: it call SIPTransport::ENUMLookup(..., routeURI) function and if enumlookup fail then it set the username as Called number and do not change the rest SIPURI structure and create SIP INVITE Request as given above: *We need to find a way to call to next available route if enumLookup fail (not call fail)* So as far as i think we need to do changes in source code in both case either we want to use comma seperator in same route input box(GUI) or we want to go on next route(next route box in GUI) if enumLookup fail. For time being i have done changes in this block and add a single line to go to next route box entry to find next route search if enumlookup fail as: Route.cxx line Line: 391 if( routeURI.GetUser().IsEmpty() ) { break; // To go on next route(route_2) } I am using a bool variable here to keep track if inner loop get fail due to enumLookup fail and go to next route of outer for loop. is it break the original functionality(please add your comments) and what is the Best solution for this problem. Thanks Yogesh On 11/6/07, Yogesh Chaturvedi <ych...@gm...> wrote: > > Hi, > > I want to configure OpenSbc such as it first call using enumlookup and if > it fail then > it should call through my voip provider. > > > I have done setting in B2BUA Route section as : > > [sip:*] enum:mydomain.com \\First Preference : > > [sip:*@192.168.96.112] sip:sip.gafachi.com \\Second preference if first > get failed: > > I dial a number that is not in DNS Opensbc try to resolve this 3 time then > give response "no such name" and then > create a Invite request As: > > SIP/SDP Request: INVITE enum:141...@e1... > > > how can i achieve that in case of enumLookup fail it send request using my > voip Provider. > > Yogesh > |
From: <jo...@op...> - 2007-11-13 02:17:26
|
Ugh! I guess you are right. Indeed enum lookup failure are not handled correctly. Can you try the following block of code instead and let me know if it fixes the problem? if( routeURI.GetScheme() *= "enum" ) { PStringArray enumServer; enumServer.AppendString( routeURI.GetHost().c_str() ); if( !SIPTransport::ENUMLookup( enumServer, targetName, routeURI ) ) { continue; /// enum lookup failed. continue to the next route } } Yogesh Chaturvedi wrote: > hi, > > Thanks for reply > > *Use a comma delimited list for your route instead of having separate > route entries. The sample route below will allow you to route to enum, > then to 192.168... and finally to gafachi. > > [sip:*] enum:**mydomain.com* <http://mydomain.com/>*, > sip:**192.168.96.112*<http://192.168.96.112/> > *, sip:** gafachi.com* <http://gafachi.com/> > > ////////////////// > > I have tried to do and give setting in B2BUA route as : > > Route_1 : [sip:*] validnumber.com, sip:sip.gafachi.com > > but after getting Enum Lookup fail it create a URI like > > SIP/SDPRequest: INVITE > enum:141...@va...<141...@va...> > (according to wireshark) > > After looking in source code i found that : > In *Route.cxx *class in *FindRoute* function it do not change the SIPURI > structure in case of enumlookup fail and working as : > Route.cxx Line 377: > > it call SIPTransport::ENUMLookup(..., routeURI) function and if enumlookup > fail then it set the username as Called number and do not change the rest > SIPURI structure and create SIP INVITE Request as given above: > > *We need to find a way to call to next available route if enumLookup fail > (not call fail)* > > So as far as i think we need to do changes in source code in both case > either we want to use comma seperator in same route input box(GUI) or we > want to go on next route(next route box in GUI) if enumLookup fail. > > For time being i have done changes in this block and add a single line to go > to next route box entry to find next route search if enumlookup fail as: > > Route.cxx line Line: 391 > > if( routeURI.GetUser().IsEmpty() ) > { > > break; // To go on next route(route_2) > > } > > I am using a bool variable here to keep track if inner loop get fail due to > enumLookup fail and go to next route of outer for loop. > > is it break the original functionality(please add your comments) and what is > the Best solution for this problem. > > > Thanks > Yogesh > > > > > > > On 11/6/07, Yogesh Chaturvedi <ych...@gm...> wrote: > >> Hi, >> >> I want to configure OpenSbc such as it first call using enumlookup and if >> it fail then >> it should call through my voip provider. >> >> >> I have done setting in B2BUA Route section as : >> >> [sip:*] enum:mydomain.com \\First Preference : >> >> [sip:*@192.168.96.112] sip:sip.gafachi.com \\Second preference if first >> get failed: >> >> I dial a number that is not in DNS Opensbc try to resolve this 3 time then >> give response "no such name" and then >> create a Invite request As: >> >> SIP/SDP Request: INVITE enum:141...@e1... >> >> >> how can i achieve that in case of enumLookup fail it send request using my >> voip Provider. >> >> Yogesh >> >> > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Splunk Inc. > Still grepping through log files to find problems? Stop. > Now Search log events and configuration files using AJAX and a browser. > Download your FREE copy of Splunk now >> http://get.splunk.com/ > _______________________________________________ > opensipstack-devel mailing list > ope...@li... > https://lists.sourceforge.net/lists/listinfo/opensipstack-devel > > > > |
From: Yogesh C. <ych...@gm...> - 2007-11-13 07:25:52
|
Hi joegen, Thanks for your Reply, I appreciate your quick reply. I have done changes in source code and test it its seems working fine , i have tested it with two Enumserver and one VoipProvider and it is working according to plan. Yogesh On 11/13/07, jo...@op... <joe...@gm...> wrote: > > Ugh! I guess you are right. Indeed enum lookup failure are not handled > correctly. Can you try the following block of code instead and let me > know if it fixes the problem? > > if( routeURI.GetScheme() *= "enum" ) > { > PStringArray enumServer; > enumServer.AppendString( routeURI.GetHost().c_str() ); > if( !SIPTransport::ENUMLookup( > enumServer, > targetName, > routeURI ) ) > { > continue; /// enum lookup failed. continue to the next > route > } > } > > Yogesh Chaturvedi wrote: > > hi, > > > > Thanks for reply > > > > *Use a comma delimited list for your route instead of having separate > > route entries. The sample route below will allow you to route to enum, > > then to 192.168... and finally to gafachi. > > > > [sip:*] enum:**mydomain.com* <http://mydomain.com/>*, > > sip:**192.168.96.112*<http://192.168.96.112/> > > *, sip:** gafachi.com* <http://gafachi.com/> > > > > ////////////////// > > > > I have tried to do and give setting in B2BUA route as : > > > > Route_1 : [sip:*] validnumber.com, sip:sip.gafachi.com > > > > but after getting Enum Lookup fail it create a URI like > > > > SIP/SDPRequest: INVITE > > enum:141...@va...<141...@va...> > > (according to wireshark) > > > > After looking in source code i found that : > > In *Route.cxx *class in *FindRoute* function it do not change the SIPURI > > structure in case of enumlookup fail and working as : > > Route.cxx Line 377: > > > > it call SIPTransport::ENUMLookup(..., routeURI) function and if > enumlookup > > fail then it set the username as Called number and do not change the > rest > > SIPURI structure and create SIP INVITE Request as given above: > > > > *We need to find a way to call to next available route if enumLookup > fail > > (not call fail)* > > > > So as far as i think we need to do changes in source code in both case > > either we want to use comma seperator in same route input box(GUI) or we > > want to go on next route(next route box in GUI) if enumLookup fail. > > > > For time being i have done changes in this block and add a single line > to go > > to next route box entry to find next route search if enumlookup fail as: > > > > Route.cxx line Line: 391 > > > > if( routeURI.GetUser().IsEmpty() ) > > { > > > > break; // To go on next route(route_2) > > > > } > > > > I am using a bool variable here to keep track if inner loop get fail due > to > > enumLookup fail and go to next route of outer for loop. > > > > is it break the original functionality(please add your comments) and > what is > > the Best solution for this problem. > > > > > > Thanks > > Yogesh > > > > > > > > > > > > > > On 11/6/07, Yogesh Chaturvedi <ych...@gm...> wrote: > > > >> Hi, > >> > >> I want to configure OpenSbc such as it first call using enumlookup and > if > >> it fail then > >> it should call through my voip provider. > >> > >> > >> I have done setting in B2BUA Route section as : > >> > >> [sip:*] enum:mydomain.com \\First Preference : > >> > >> [sip:*@192.168.96.112] sip:sip.gafachi.com \\Second preference if > first > >> get failed: > >> > >> I dial a number that is not in DNS Opensbc try to resolve this 3 time > then > >> give response "no such name" and then > >> create a Invite request As: > >> > >> SIP/SDP Request: INVITE enum:141...@e1... > >> > >> > >> how can i achieve that in case of enumLookup fail it send request using > my > >> voip Provider. > >> > >> Yogesh > >> > >> > > > ------------------------------------------------------------------------- > > This SF.net email is sponsored by: Splunk Inc. > > Still grepping through log files to find problems? Stop. > > Now Search log events and configuration files using AJAX and a browser. > > Download your FREE copy of Splunk now >> http://get.splunk.com/ > > _______________________________________________ > > opensipstack-devel mailing list > > ope...@li... > > https://lists.sourceforge.net/lists/listinfo/opensipstack-devel > > > > > > > > > > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Splunk Inc. > Still grepping through log files to find problems? Stop. > Now Search log events and configuration files using AJAX and a browser. > Download your FREE copy of Splunk now >> http://get.splunk.com/ > _______________________________________________ > opensipstack-devel mailing list > ope...@li... > https://lists.sourceforge.net/lists/listinfo/opensipstack-devel > |