This will not fix incoming calls to the other provider, ie. this assumes the other service providers PSTN gateway is forwarding to your SER a/c. Asterisk would let you register as a UA with all service providers and receive calls on the same extension. Br /Kev/
Juan Priotti wrote:
Just add the DID's provided as alias of the user:
serctl alias add <DID 1st provider> <customer's uri> serctl alias add <DID 2nd provider> <customer's uri>
and calls made to bith DID's will be routed to the same customer.
----- Original Message ----- *From:* Ozan Blotter <mailto:cosmocid@ispro.net.tr> *To:* serusers@lists.iptel.org <mailto:serusers@lists.iptel.org> *Sent:* Saturday, August 27, 2005 4:04 AM *Subject:* [Serusers] 1 SER & 2 Providers Dear List, Assume that there are two different service providers and one SER in middle of them. A client needs to use/connect SER but also he/she has accounts in both providers and both supplied him/her DDIs (landline phone). Now again assume that client registers both of phones into SER. But still he/she wants to receive calls from both providers, is it possible to receive calls from different providers to that client and/or how to i setup ? In current SER.CFG below, i only setup one prefix which is "0", but i can change it to any and/or add many prefixes, ex: 0049 (germany), 001 (usa), 0044 (uk), 0090 (turkey) to Provider 1 and 0033 (france), 0038 (italy) to Provider 2 and so on. debug=3 fork=yes log_stderror=no listen=212.XXX.104.XXX # This is SER's Public IP port=5060 children=4 alias=212.XXX.104.XXX # This is SER's Public IP dns=no rev_dns=no fifo="/tmp/openser_fifo" fifo_db_url="mysql://openser:openserrw@localhost/openser" loadmodule "/usr/local/lib/openser/modules/mysql.so" loadmodule "/usr/local/lib/openser/modules/sl.so" loadmodule "/usr/local/lib/openser/modules/tm.so" loadmodule "/usr/local/lib/openser/modules/rr.so" loadmodule "/usr/local/lib/openser/modules/maxfwd.so" loadmodule "/usr/local/lib/openser/modules/usrloc.so" loadmodule "/usr/local/lib/openser/modules/registrar.so" loadmodule "/usr/local/lib/openser/modules/auth.so" loadmodule "/usr/local/lib/openser/modules/auth_db.so" loadmodule "/usr/local/lib/openser/modules/uri.so" loadmodule "/usr/local/lib/openser/modules/uri_db.so" loadmodule "/usr/local/lib/openser/modules/mediaproxy.so" loadmodule "/usr/local/lib/openser/modules/nathelper.so" loadmodule "/usr/local/lib/openser/modules/textops.so" loadmodule "/usr/local/lib/openser/modules/domain.so" loadmodule "/usr/local/lib/openser/modules/acc.so" modparam("auth_db", "calculate_ha1", 1) modparam("auth_db", "password_column", "password") modparam("auth_db", "use_domain", 1) modparam("domain", "db_mode", 1) modparam("nathelper", "rtpproxy_disable", 1) modparam("nathelper", "natping_interval", 180) modparam("mediaproxy","natping_interval", 30) modparam("mediaproxy","mediaproxy_socket", "/var/run/mediaproxy.sock") modparam("mediaproxy","sip_asymmetrics","/usr/local/etc/openser/sip-asymmetric-clients") modparam("mediaproxy","rtp_asymmetrics","/usr/local/etc/openser/rtp-asymmetric-clients") modparam("usrloc", "db_mode", 2) modparam("usrloc", "use_domain", 1) modparam("registrar", "default_expires", 60) modparam("registrar", "min_expires", 30) modparam("registrar", "nat_flag", 6) modparam("registrar", "use_domain", 1) modparam("rr", "enable_full_lr", 1) modparam("acc", "db_url", "mysql://openser:openserrw@localhost/openser") modparam("acc", "failed_transactions", 1) modparam("acc", "log_level", 1) modparam("acc", "log_flag", 1) modparam("acc", "db_flag", 1) route { # ----------------------------------------------------------------- # Sanity Check Section # ----------------------------------------------------------------- if (!mf_process_maxfwd_header("10")) { sl_send_reply("483", "Too Many Hops"); break; }; if (msg:len > max_len) { sl_send_reply("513", "Message Overflow"); break; }; # ----------------------------------------------------------------- # Record Route Section and Acc section # ----------------------------------------------------------------- if (method=="INVITE" && client_nat_test("3")) { record_route_preset("212.XXX.104.XXX:5060;nat=yes"); # This is SER's Public IP } else if (method!="REGISTER") { if!(uri=~"^sip:833[0-9]*@") { # I do not want to make accounting if clients' prefix is beginning with 833 record_route(); setflag(1); } }; # ----------------------------------------------------------------- # Call Tear Down Section # ----------------------------------------------------------------- if (method=="BYE" || method=="CANCEL") { end_media_session(); }; # ----------------------------------------------------------------- # Loose Route Section # ----------------------------------------------------------------- if (loose_route()) { if (has_totag() && (method=="INVITE" || method=="ACK")) { if (client_nat_test("3") || search("^Route:.*;nat=yes")) { setflag(6); use_media_proxy(); }; }; route(1); break; }; # ----------------------------------------------------------------- # Call Type Processing Section # ----------------------------------------------------------------- if (uri!=myself) { route(1); break; }; if (uri==myself) { if (method=="CANCEL") { route(3); break; } else if (method=="INVITE") { route(3); break; } else if (method=="REGISTER") { route(2); break; }; lookup("aliases"); if (uri!=myself) { route(1); break; }; if (!lookup("location")) { sl_send_reply("404", "User Not Found"); break; }; }; route(1); } route[1] { # ----------------------------------------------------------------- # Default Message Handler # ----------------------------------------------------------------- t_on_reply("1"); if (!t_relay()) { if (method=="INVITE" || method=="ACK") { end_media_session(); }; sl_reply_error(); }; } route[2] { # ----------------------------------------------------------------- # REGISTER Message Handler # ---------------------------------------------------------------- if (!search("^Contact:\ +\*") && client_nat_test("7")) { setflag(6); fix_nated_register(); force_rport(); }; sl_send_reply("100", "Trying"); if (!www_authorize("","subscriber")) { www_challenge("","0"); break; }; if (!check_to()) { sl_send_reply("401", "Unauthorized"); break; }; consume_credentials(); if (!save("location")) { sl_reply_error(); }; } route[3] { # ----------------------------------------------------------------- # CANCEL and INVITE Message Handler # ----------------------------------------------------------------- if (client_nat_test("3")) { setflag(7); force_rport(); fix_nated_contact(); }; lookup("aliases"); if (uri!=myself) { route(1); break; }; if (uri=~"^sip:0[0-9]*@*") { # If calling number is beginning with prefix 0, route it to PSTN rewritehost("195.XXX.122.XXX"); # This is PSTN Gateway's Public IP route(1); break; }; if (!lookup("location")) { sl_send_reply("404", "User Not Found"); break; }; if (method=="CANCEL") { route(1); break; }; if (!proxy_authorize("","subscriber")) { proxy_challenge("","0"); break; } else if (!check_from()) { sl_send_reply("403", "Use From=ID"); break; }; consume_credentials(); if (isflagset(6) || isflagset(7)) { use_media_proxy(); }; route(1); } onreply_route[1] { if ((isflagset(6) || isflagset(7)) && (status=~"(180)|(183)|2[0-9][0-9]")) { if (!search("^Content-Length:\ +0")) { use_media_proxy(); }; }; if (client_nat_test("1")) { fix_nated_contact(); }; } ------------------------------------------------------------------------ _______________________________________________ Serusers mailing list serusers@lists.iptel.org http://lists.iptel.org/mailman/listinfo/serusers
Serusers mailing list serusers@lists.iptel.org http://lists.iptel.org/mailman/listinfo/serusers