[OpenSIPS-Users] howto get NAPTR lookup
Bogdan-Andrei Iancu
bogdan at voice-system.ro
Fri Nov 21 16:07:36 CET 2008
Dilip,
The error does not come from the ENUM lookup, but from using "xyz.com"
as destination in dispatcher.
Regards,
Bogdan
Dilip wrote:
> Hello,
>
> I want to use ENUM with openser. My ENUM url is _xyz.com_
> I m forwarding the call on enum url (i.e xyz.com) but, I m getting
> prob in that.
> Here, I have attached my openser.cfg file and dispatcher.list file.
>
> Whats wrong with it ?? please guide me for that.
>
>
> Thanks & Regards,
>
> Urmi
>
>
> ************************************************************************
>
> *Openser.cfg file ::*
>
> ************************************************************************
>
> #openser version 1.1
> # ----------- global configuration parameters ------------------------
>
> debug=9 # debug level (cmd line: -dddddddddd
> fork=yes
> log_stderror=yes # (cmd line: -E)
> #log_facility=LOG_LOCAL5
> check_via=no # (cmd. line: -v)
> dns=no # (cmd. line: -r)
> rev_dns=no # (cmd. line: -R)
>
>
> listen=udp:x.x.x.x
> port=3030
> children=8
> #fifo="/tmp/openser_fifo"
>
> #unix_sock_children=2
>
> # ------------------ module loading ----------------------------------
> mpath="/usr/local/lib/openser/modules"
>
> loadmodule "mysql.so"
> loadmodule "sl.so"
> loadmodule "tm.so"
> loadmodule "rr.so"
> loadmodule "maxfwd.so"
> loadmodule "usrloc.so"
> loadmodule "registrar.so"
> loadmodule "textops.so"
> loadmodule "xlog.so"
> loadmodule "uri.so"
> loadmodule "acc.so"
> loadmodule "auth.so"
> loadmodule "auth_radius.so"
> loadmodule "dispatcher.so"
> loadmodule "nathelper.so"
> loadmodule "enum.so"
> # ----------------- setting module-specific parameters ---------------
> #------------------ registrar testing---------------------------------
> modparam("registrar", "default_expires", 2250000)
>
> #------------------Dialog Module--------------------------------------
>
> # -- usrloc params --
> modparam("dispatcher", "list_file",
> "/usr/local/etc/openser/dispatcher.list")
> modparam("usrloc","db_url","mysql://openser:openserrw@localhost/openser")
> modparam("usrloc","db_mode", 3)
> modparam("usrloc", "timer_interval", 30)
> #modparam("usrloc", "expires_column", "225000")
> #modparam("usrloc", "cseq_delay", 60)
> #modparam("usrloc", "timer_interval", 30)
> #modparam("usrloc","desc_time_order", 1)
> #modparam("usrloc", "matching_mode", 1)
> #modparam("registrar", "desc_time_order", 1)
> modparam("usrloc", "desc_time_order", 0) # urmi :: for q-value change
> #modparam("registrar", "max_contacts", 1)
>
> ################################## ENUM ######################
> modparam("enum", "domain_suffix", "e164.arpa.") #urmi
>
> # -- acc params --
>
> #################################################################################
>
>
> modparam("acc", "log_flag", 1)
> modparam("acc", "log_missed_flag", 2)
>
> modparam("acc", "service_type", 15)
> modparam("acc|auth_radius",
> "radius_config","/etc/radiusclient-ng/radiusclient.conf")
> modparam("acc", "radius_flag", 1)
> modparam("acc", "radius_missed_flag", 1)
>
> modparam("acc", "radius_extra", "
> Called-Station-Id=$tu;
> Calling-Station-Id=$fu;
> Canonical-URI=$tu;
> User-Name=$au;
> Sip-User-Realm=$ar;
> Source-IP=$si;
> Source-Port=$sp;
> From-Header=$hdr(from);
> User-Agent=$hdr(user-agent);
> Contact=$hdr(contact);
> ENUM-TLD=$avp(s:enum_tld);
> Event=$hdr(event)")
>
>
>
> # -- rr params --
> # add value to ;lr param to make some broken UAs happy
> modparam("rr", "enable_full_lr", 1)
>
> # ------------------------- request routing logic -------------------
>
> # main routing logic
>
> route{
> xdbg("\n\n---- Start -----\n\n");
> if (!mf_process_maxfwd_header("10")) {
> sl_send_reply("483","Too Many Hops");
> exit;
> };
>
> if (msg:len >= 2048 ) {
> sl_send_reply("513", "Message too big");
> exit;
> };
> if (!method=="REGISTER"){
> record_route();
> };
>
> if (loose_route()){
> xdbg("\n\n---- Loose route ----\n\n");
> xdbg("\n\n-------- Stop Accounting --------\n\n");
> setflag(1); #Stop accounting
> route(1);
> exit;
> };
>
> if ((src_ip=="xyz.com") ) {
> xdbg("\n\n---- From sip proxy server -----\n\n");
> route(2);
> exit;
> };
>
>
> if (method=="REGISTER"){
> xdbg("\n\n---- Register ----\n\n");
> route(3);
> exit;
> };
> if (method=="INVITE")
> {
> xdbg("\n\n-------- Start Accounting --------\n\n");
>
> if (nat_uac_test("19"))
> {
> xdbg("\n\n-------- Nated --------\n\n");
> fix_nated_contact();
> force_rport();
> };
>
> xdbg("\n\n---- Invite INSIDE.............----\n\n");
>
> if (!radius_www_authorize("")) {
> www_challenge("", "0");
> exit;
> };
>
> acc_rad_request("Start");
>
> xdbg("\n\n---- AFTER RADIUS ----\n\n");
> };
>
>
> if (uri=~"^sip:[1-9][0-9]*") { # temp for austrlia
> # strip(1);
> xdbg("\n\n---- urmi----\n\n");
> xdbg("\n\n---- urmi----\n\n");
> xdbg("\n\n---- urmi----\n\n");
> prefix("+");
> };
> if (uri=~"sip:\+[0-9]+")
> {
> if ( !enum_query("e164.arpa.") )
> {
> # enum_query("e164.arpa.");
> enum_query("nrenum.net.");
> # enum_query("xyz.com"); #running
> };
> };
>
>
>
> ds_select_dst("1", "0");
> forward();
> exit;
> }
>
> # generic forward
> route[1] {
> if (!t_relay()) {
> sl_reply_error();
> };
> }
>
> route[2]
> {
> if (lookup("location"))
> {
> route(1);
> }else{
> sl_send_reply("404", "Not Found");
> xdbg("\n\n-------- To sip proxy ---urmi --------\n\n");
> ds_select_dst("3", "0");
> forward();
>
> };
> }
>
> #Register
> route[3]
> {
> if (nat_uac_test("18"))
> {
> xdbg("\n\n-------- Nated --------\n\n");
> fix_nated_register();
> force_rport();
> };
>
> if (!radius_www_authorize(""))
> {
> xdbg("\n\n--- Inside Route 3 ----\n\n");
> www_challenge("", "0");
> exit;
> };
>
> save("location");
> }
>
>
> ************************************************************************
>
> *dispatcher.list file ::*
>
> ************************************************************************
>
> 1 sip:xyz.com
>
>
> ************************************************************************
>
> *Problem on OpenSER ::*
>
> ************************************************************************
>
> 2(31443) enum_query(): order 1, pref 10, flen 1, flags 'u', slen 7,
> services 'E2U+sip', rlen 36, regexp
> '!^.*$!sip:61262223557 at aarnet.edu.au!'
>
> 2(31443) reg_replace(): pattern: '^.*$', replacement:
> 'sip:61262223557 at aarnet.edu.au', string: '+61590077777'
>
> 2(31443) enum_query(): resulted in replacement:
> 'sip:61262223557 at aarnet.edu.au'
>
> 2(31443) rewrite_uri: Rewriting Request-URI with
> 'sip:61262223557 at aarnet.edu.au'
>
> 2(31443) DISPATCHER:ds_select_dst: set index [1->0]
>
> 2(31443) DISPATCHER:ds_select_dst: alg hash [2930033304]
>
> 2(31443) DISPATCHER:ds_select_dst: selected [0-1/0/0] <sip:xyz.com>
>
> 2(31443) DEBUG: mk_proxy: doing DNS lookup...
>
> 2(31443) DEBUG:sip_resolvehost2: no port, no proto -> do NAPTR lookup!
>
> 2(31443) get_record: lookup(xyz.com, 35) failed
>
> 2(31443) DEBUG:sip_resolvehost2: no valid NAPTR record found for
> xyz.com, trying direct SRV lookup...
>
> 2(31443) get_record: lookup(_sip._udp.xyz.com, 33) failed
>
> 2(31443) DEBUG:sip_resolvehost2: no valid SRV record found for
> _sip._udp.xyz.com, trying A record lookup...
>
> 2(31443) ERROR: mk_proxy: could not resolve hostname: "xyz.com"
>
> *************************************************************
>
>
> Bogdan-Andrei Iancu wrote:
>> Hi Urmi,
>>
>> looking at the logs you sent, there is first an ENUM lookup (which
>> has nothing to do with the xyz.com domain) and then a forward (via
>> dispatcher) to the xyz.com domain.
>>
>> I'm not sure I understand your question here.....
>>
>> Regards,
>> Bogdan
>>
>> dilip.m at renovau.com wrote:
>>> Hello Bogdan,
>>>
>>> Thanks 4 ur quick reply.
>>>
>>> Many of our calls are done through this ENUM url (i.exyz.com). That
>>> means, if its not hv DNS entries, than how its possible.
>>>
>>> Any thing left in our openser.cfg file. Can u please tell me, the
>>> solution of this ??
>>>
>>> Thanks & Regards,
>>> Urmi
>>>
>>>
>>>
>>> Quoting Bogdan-Andrei Iancu <bogdan at voice-system.ro>:
>>>
>>>
>>>> Hi Urmi,
>>>>
>>>> I see here 2 queries:
>>>>
>>>> 1) an enum one - and the number you are looking has no enum record
>>>>
>>>> 2) a DNS lookup (NAPTR, SRV, A) for xyz.com domain - and it looks
>>>> there
>>>> are no entries in DNS for it.
>>>>
>>>> Regards,
>>>> Bogdan
>>>>
>>>> dilip.m at renovau.com wrote:
>>>>
>>>>> Hello,
>>>>>
>>>>> I want to use ENUM with openser + CDRTool. xyz is my ENUM url.
>>>>> When I m firing the call, I m getting the following error on
>>>>> openser ::
>>>>>
>>>>> ---------------------------------------------------------------------------------------------
>>>>>
>>>>> 2(31823) get_record: lookup(0.0.5.2.7.3.3.3.0.3.1.e164.arpa., 35)
>>>>> failed
>>>>> 2(31823) enum_query(): No NAPTR record found for
>>>>> 0.0.5.2.7.3.3.3.0.3.1.e164.arpa..
>>>>> 2(31823) get_record: lookup(0.0.5.2.7.3.3.3.0.3.1.e164.arpa., 35)
>>>>> failed
>>>>> 2(31823) enum_query(): No NAPTR record found for
>>>>> 0.0.5.2.7.3.3.3.0.3.1.e164.arpa..
>>>>> 2(31823) DISPATCHER:ds_select_dst: set index [1->0]
>>>>> 2(31823) DISPATCHER:ds_select_dst: alg hash [450732010]
>>>>> 2(31823) DISPATCHER:ds_select_dst: selected [0-1/0/0] <sip:xyz.com>
>>>>> 2(31823) DEBUG: mk_proxy: doing DNS lookup...
>>>>> 2(31823) DEBUG:sip_resolvehost2: no port, no proto -> do NAPTR
>>>>> lookup!
>>>>> 2(31823) get_record: lookup(xyz.com, 35) failed
>>>>> 2(31823) DEBUG:sip_resolvehost2: no valid NAPTR record found
>>>>> for xyz.com, trying direct SRV lookup...
>>>>> 2(31823) get_record: lookup(_sip._udp.xyz.com, 33) failed
>>>>> 2(31823) DEBUG:sip_resolvehost2: no valid SRV record found for
>>>>> _sip._udp.xyz.com, trying A record lookup...
>>>>> 2(31823) ERROR: mk_proxy: could not resolve hostname: "xyz.com"
>>>>> ---------------------------------------------------------------------------------------------
>>>>>
>>>>>
>>>>> openser.cfg file :::
>>>>>
>>>>> loadmodule "enum.so"
>>>>>
>>>>> modparam("enum", "domain_suffix", "e164.arpa.") #urmi
>>>>>
>>>>> modparam("acc", "radius_extra", "
>>>>> Called-Station-Id=$tu;
>>>>> Calling-Station-Id=$fu;
>>>>> Canonical-URI=$tu;
>>>>> User-Name=$au;
>>>>> Sip-User-Realm=$ar;
>>>>> Source-IP=$si;
>>>>> Source-Port=$sp;
>>>>> From-Header=$hdr(from);
>>>>> User-Agent=$hdr(user-agent);
>>>>> Contact=$hdr(contact);
>>>>> ENUM-TLD=$avp(s:enum_tld);
>>>>> Event=$hdr(event)")
>>>>>
>>>>>
>>>>> route
>>>>> {
>>>>>
>>>>> if (uri=~"^sip:1[1-9][0-9]*"){
>>>>> # strip(2);
>>>>> prefix("+");
>>>>> };
>>>>>
>>>>> if (uri=~"sip:\+[0-9]+")
>>>>> {
>>>>> xdbg("\n\n---- urmi second if ENUM uri----\n\n");
>>>>>
>>>>> if ( !enum_query("e164.arpa.") )
>>>>> {
>>>>> # enum_query("nrenum.net.");
>>>>> enum_query("e164.arpa.");
>>>>> };
>>>>> };
>>>>>
>>>>> }
>>>>> -----------------------------------------------------------------------------------------------------------------
>>>>>
>>>>> Can you please hepl me out in this.
>>>>>
>>>>>
>>>>> Thanks in advance.
>>>>> Urmi
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> Users mailing list
>>>>> Users at lists.opensips.org
>>>>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>>>>>
>>>>>
>>>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> Users mailing list
>>> Users at lists.opensips.org
>>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>>>
>>>
>>
>>
>
>
More information about the Users
mailing list