Re: [OpenSIPStack] EnumLookUp Routing Problem
Brought to you by:
joegenbaclor
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 > > > > |