[Serusers] Can' t receive calls from other domains
Iqbal
iqbal at gigo.co.uk
Mon Sep 12 17:51:18 CEST 2005
when the call comes in from another domain, are you trying to
autheticate it, get a ngrp dump of what is happening with the call
iqbal
harry gaillac wrote:
>Hello,
>
>I use ser-0.9.3 and mediaproxy 1.4.2
>
>I can dial sip addresses to other domains however i
>can't
>receive calls.
>
>I 've been spending time to fix this problem without
>success.
>
>In fact ser don't send public ip in sdp of the callee.
>
>Thanks for help
>
>Harry
>
>
>
> $Id: ser.cfg,v 1.27 2005/03/10 14:16:25 Exp $
>#
>#
>
># ----------- global configuration parameters
>------------------------
>
>debug=3 # debug level (cmd line: -dddddddddd)
>fork=yes
>log_stderror=no # (cmd line: -E)
>#memlog=5 # memory debug log level
>#log_facility=LOG_LOCAL0 # sets the facility used for
>logging (see syslog(3))
>
>/* Uncomment these lines to enter debugging mode
>#fork=no
>#log_stderror=yes
>*/
>
>check_via=no # (cmd. line: -v)
>dns=no # (cmd. line: -r)
>rev_dns=no # (cmd. line: -R)
>port=5060
>children=4
>fifo="/tmp/ser_fifo"
>fifo_db_url="mysql://ser:heslo@serveur1.home.net/ser"
>user=root
>group=ser
>fifo_user=root # owner of the ser fifo
>fifo_group=ser
>fifo_mode=0660 # fifo's permissions
>#disable_core=yes #disables core dumping
>#open_fd_limit=1024 # sets the open file descriptors
>limit
>#mhomed=yes # usefull for multihomed hosts, small
>performance penalty
>#disable_tcp=yes
>#tcp_accept_aliases=yes # accepts the tcp alias via
>option (see NEWS)
>listen=80.119.6.86
>#
>
># ------------------ module loading
>----------------------------------
>
>loadmodule "/usr/lib/ser/modules/mysql.so"
>loadmodule "/usr/lib/ser/modules/sl.so"
>loadmodule "/usr/lib/ser/modules/tm.so"
>loadmodule "/usr/lib/ser/modules/rr.so"
>loadmodule "/usr/lib/ser/modules/maxfwd.so"
>loadmodule "/usr/lib/ser/modules/usrloc.so"
>loadmodule "/usr/lib/ser/modules/registrar.so"
>loadmodule "/usr/lib/ser/modules/uri.so"
>loadmodule "/usr/lib/ser/modules/uri_db.so"
>loadmodule "/usr/lib/ser/modules/nathelper.so"
>loadmodule "/usr/lib/ser/modules/mediaproxy.so"
>loadmodule "/usr/lib/ser/modules/auth.so"
>loadmodule "/usr/lib/ser/modules/auth_db.so"
>loadmodule "/usr/lib/ser/modules/textops.so"
>loadmodule "/usr/lib/ser/modules/permissions.so"
>loadmodule "/usr/lib/ser/modules/domain.so"
>loadmodule "/usr/lib/ser/modules/group.so"
>loadmodule "/usr/lib/ser/modules/acc.so"
>loadmodule "/usr/lib/ser/modules/msilo.so"
>loadmodule "/usr/lib/ser/modules/avpops.so"
>
># ----------------- setting module-specific parameters
>---------------
>
># -- usrloc params--
>modparam("usrloc", "db_mode", 2)
>modparam("usrloc", "use_domain", 1)
>
># -- autdb_params--
>modparam("auth_db", "calculate_ha1", yes)
>modparam("auth_db", "password_column", "password")
>modparam("auth_db", "use_domain", 1)
>
># -- rr params --
># add value to ;lr param to make some broken UAs happy
>modparam("rr", "enable_full_lr", 1)
>
># -- nathelper params --
>modparam("nathelper", "ping_nated_only", 0)
>modparam("nathelper", "rtpproxy_disable", 1)
>
># mediaproxy params --
>modparam("mediaproxy", "natping_interval", 10)
>modparam("mediaproxy", "mediaproxy_socket",
>"/var/run/mediaproxy.sock")
>
># -- registrar params --
>modparam("registrar", "nat_flag", 4)
>modparam("registrar", "use_domain", 1)
>
># -- tm params --
>modparam("tm", "fr_inv_timer", 15)
>modparam("tm", "fr_timer", 10)
>
># --domain params --
>modparam("domain", "db_url",
>"mysql://ser:heslo@serveur1.home.net/ser")
>modparam("domain", "domain_table", "domain")
>modparam("domain", "db_mode", 1) # Use caching
>
># -- permissions params --
>modparam("permissions", "db_url",
>"mysql://ser:heslo@serveur1.home.net/ser")
>modparam("permissions", "db_mode", 1)
>modparam("permissions", "trusted_table", "trusted")
>modparam("permissions", "default_deny_file",
>"/etc/ser/permissions.deny")
>modparam("permissions", "default_allow_file",
>"/etc/ser/permissions.allow")
>
># -- acc params --
>modparam("acc", "db_url",
>"mysql://ser:heslo@serveur1.home.net/ser")
>modparam("acc", "log_fmt", "miocfsp")
>modparam("acc", "failed_transactions", 1)
>modparam("acc", "db_flag", 2)
>modparam("acc", "db_missed_flag", 3)
>
># -- msilo params --
>modparam("msilo", "db_url",
>"mysql://ser:heslo@serveur1.home.net/ser")
>modparam("msilo", "check_time", 10)
>
># -- avpos params --
>modparam("avpops","avp_url","mysql://ser:heslo@serveur1.home.net/ser")
>modparam("avpops","avp_table","usr_preferences")
>
># ------------------------- request routing logic
>-------------------
>
>
># main routing logic
>
>route{
>
> # initial sanity checks -- messages with
> # max_forwards==0, or excessively long requests
> if (!mf_process_maxfwd_header("10")) {
> sl_send_reply("483","Too Many Hops");
> break;
> };
> if (msg:len >= max_len ) {
> sl_send_reply("513", "Message too big");
> break;
> };
>
> # we record-route all messages -- to make sure that
> # subsequent messages will go through our proxy;
>that's
> # particularly good if upstream and downstream
>entities
> # use different transport protocol
> if (!method=="REGISTER") {
> record_route();
> };
>
>
> if (method=="CANCEL" || method=="BYE") {
> end_media_session();
> };
>
> # subsequent messages withing a dialog should take
>the
> # path determined by record-routing
> if (loose_route()) {
> if (has_totag() && method=="INVITE" ||
>method=="ACK") {
> if (client_nat_test("3")) {
> setflag(4);
> force_rport();
> fix_contact();
> };
> use_media_proxy();
> };
> route(1);
> break;
> };
>
>
>
> # if the request is for our domains use UsrLoc
> # (in case, it does not work, use the following
>command
> # with proper names and addresses in it)
> if (is_uri_host_local()) {
>
> if (method=="CANCEL") {
> route(3);
> break;
> } else if (method=="INVITE") {
> route(3);
> break;
> } else if (method=="REGISTER") {
> route(2);
> break;
> } else if (method=="MESSAGE") {
> route(7);
> break;
> } else if (method=="SUBSCRIBE" || method=="NOTIFY")
>{
> route(8);
> break;
> };
> route(1);
> break;
> };
>
> # Requests to others domains
> if (!is_uri_host_local()) {
>
> # Checking Authorization
> if (!proxy_authorize("","subscriber")) {
> proxy_challenge("","0");
> sl_send_reply("407", "Proxy Authentication
>Required");
> break;
> };
>
>
>
> if (client_nat_test("3")) {
> setflag(4);
> };
>
> if (isflagset(4)) {
> force_rport();
> fix_contact();
> use_media_proxy();
> };
>
> # Message Handler to others domains #
>
> if (method=="MESSAGE") {
> route(1);
> break;
> };
>
>
>
> # mark routing logic in request
> append_hf("P-hint: outbound\r\n");
>
> route(1);
> break;
> };
>
>}
>
>route[1] {
> ###########################
> # Default Message Handler #
> ###########################
>
> t_on_reply("1");
>
> # send it out now; use stateful forwarding as it
>works reliably
> # even for UDP2TCP
> if (!t_relay()) {
> sl_reply_error();
> };
>}
>
>route[2] {
> ############################
> # Register Message Handler #
> ############################
>
> if (client_nat_test("3")) {
> setflag(4);
> force_rport();
> fix_contact();
> };
>
> if (!www_authorize("", "subscriber")) {
> www_challenge("", "0");
> sl_send_reply("401", "Unauthorized");
> break;
> };
>
> if (!is_from_local()) {
> sl_send_reply("401", "Unauthorized");
> break;
> };
>
> consume_credentials();
>
> if (!save("location")) {
> sl_reply_error();
> break;
> };
> m_dump();
>}
>
>route[3] {
> #############################
> # CANCEL and INVITE handler #
> #############################
> # SIP destinations to PSTN
> if (uri=~"^sip:[0-9]{4}@.*$" ||
>uri=~"^sip:[0-9]{10}@.*$" ||
>uri=~"^sip:06[0-9]{8}@.*$" || uri=~"^sip:00.*@.*$") {
> route(4);
> route(1);
> break;
> };
>
> # SIP destinations to IPBX
> if (uri=~"^sip:8[0-3]@.*$") {
> route(5);
> route(1);
> break;
> }
>
>
> # Check AVPs for Voicemail
> if
>((avp_db_load("$ruri","s:fw_voicemail/usr_preferences")
>&& avp_check("fw_voicemail", "eq/i:1"))) {
> route(6);
> route(1);
> break;
> };
>
>
> # accounting db flags
> setflag(2);
> setflag(3);
> acc_db_request("404 missed call", "missed_calls");
>
> # Check Nated User Agents
> if (client_nat_test("3")) {
> setflag(4);
> };
>
> if (isflagset(4)) {
> force_rport();
> fix_contact();
> use_media_proxy();
> };
>
> # Check ACL for Voicemail
> if (is_user_in("Request-URI","voicemail")) {
> setflag(5);
> };
>
>
> # native SIP destinations are handled using
>our USRLOC DB
> lookup("aliases");
> if (!lookup("location")) {
> if (isflagset(5)) {
> route(6);
> route(1);
> break;
> } else {
> sl_send_reply("404", "User Not Found");
> break;
> };
> };
>
> t_on_failure("1");
> route(1);
> break;
>
>
>
>}
>
>
>route[4] {
> ##########################
> # Outgoing PSTN Handler #
> ##########################
>
> # Checking Authorization to PSTN
> if (!proxy_authorize("","subscriber")) {
> proxy_challenge("","0");
> sl_send_reply("407", "Proxy Authentication
>Required");
> break;
> };
>
>
>
> if (uri=~"^sip:[0-9]{4}@.*$") {
> if (!is_user_in("From", "local")) {
> sl_send_reply("403", "Forbidden");
> break;
> };
>
> } else if (uri=~"^sip:[0-9]{10}@.*$") {
> if (!is_user_in("From", "local")) {
> sl_send_reply("403",
>"Forbidden");
> break;
> };
>
> } else if (uri=~"^sip:06[0-9]{8}@.*$") {
> if (!is_user_in("From", "cellphone"))
>{
> sl_send_reply("403",
>"Forbidden");
> break;
> };
>
> } else if (uri=~"^sip:00. at .*$") {
> if (!is_user_in("From", "int")) {
> sl_send_reply("403",
>"Forbidden");
> break;
> };
> };
>
>
> prefix("0");
> rewritehostport("asterisk.home.net:5050");
> break;
>}
>
>route[5] {
> ##########################
> # Asterisk Handler #
> ##########################
>
> # Checking Authorization to Asterisk
> if (!proxy_authorize("","subscriber")) {
> proxy_challenge("","0");
> sl_send_reply("407", "Proxy Authentication
>Required");
> break;
> };
>
>
> if (uri=~"^sip:8[0-3]@.*$") {
> if (!is_user_in("From", "local")) {
> sl_send_reply("403",
>"Forbidden");
> break;
> };
> };
>
>
>
> rewritehostport("asterisk.home.net:5050");
> break;
>}
>
>route[6] {
> ##########################
> # Voicemail Handler #
> ##########################
>
> revert_uri(); # resend to voicemail with original
>request URI
> prefix("u");
> rewritehostport("asterisk.home.net:5050");
> break;
>
>}
>
>route[7] {
> ##########################
> # Message Handler #
> ###########################
>
> # Checking Authorization
> if (!proxy_authorize("","subscriber")) {
> proxy_challenge("","0");
> sl_send_reply("407", "Proxy Authentication
>Required");
> break;
> };
>
>
>
> lookup("aliases");
> if (!lookup("location")) {
> if (method == "MESSAGE") {
> if (!t_newtran()) {
> sl_reply_error();
> break;
> };
>
> if (m_store("0")) {
> t_reply("202", "Accepted for Later
>Delivery");
> break;
> };
>
> t_reply("503", "Service Unavailable");
> break;
> };
> };
> route(1);
>}
>
>route[8] {
> ################################
> # SUBSCRIBE/NOTIFY Handler #
> ################################
>
> # Checking Authorization
> if (!proxy_authorize("","subscriber")) {
> proxy_challenge("","0");
> sl_send_reply("407", "Proxy Authentication
>Required");
> break;
> };
>
>
>
> lookup("aliases");
> if (!lookup("location")) {
> sl_send_reply("404", "User Not
>Found");
> break;
> };
> route(1);
>
>
>}
>
>onreply_route[1] {
> ##########################
> # Statefull Handler #
> ##########################
>
> if (isflagset(4) || isflagset(6) &&
>status=~"(180) || (183) || 2[0-9][0-9]") {
> if(search("^Content-Type:
>.*$")) {
> use_media_proxy();
> };
> };
>
> if (client_nat_test("1")) {
> fix_contact();
> };
>
>
>
>}
>
>failure_route[1] {
> ##########################
> # Voicemail Handler #
> ##########################
>
> if (t_check_status("486")) {
> revert_uri(); # resend to voicemail with original
>request URI
> prefix("b");
> rewritehostport("asterisk.home.net:5050");
> append_branch();
> t_relay_to_udp("asterisk.home.net","5050");
> break;
> };
> if (t_check_status("408")) {
> revert_uri(); # resend to voicemail with original
>request URI
> prefix("u");
> rewritehostport("asterisk.home.net:5050");
> append_branch();
> t_relay_to_udp("asterisk.home.net","5050");
> break;
> };
>
>}
>
>
>
>
>
>
>
>
>
>
>
>
>
>___________________________________________________________________________
>Appel audio GRATUIT partout dans le monde avec le nouveau Yahoo! Messenger
>Téléchargez cette version sur http://fr.messenger.yahoo.com
>
>_______________________________________________
>Serusers mailing list
>serusers at lists.iptel.org
>http://lists.iptel.org/mailman/listinfo/serusers
>
>.
>
>
>
More information about the sr-users
mailing list