[Serusers] Call Transfers in SER + Asterisk

Arun Kumar arunvoip at gmail.com
Sat Nov 25 05:46:51 CET 2006


HI,

I want to transfer calls from SER to Asterisk but I'm not able to do it. So,
please guide me. Here is my ser.cfg and other config files please guide me.

my trusted table contiains a record of my asterisk ip :
asterisk ip any *

ser.cfg
------------------
debug=5
fork=no
log_stderror=yes

listen=2xx.xxx.xxx.xxx       # INSERT YOUR IP ADDRESS HERE
port=5060
children=4

dns=no
rev_dns=no
fifo="/tmp/ser_fifo"
fifo_db_url="mysql://ser:mypass@localhost/ser"

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/auth.so"
loadmodule "/usr/lib/ser/modules/auth_db.so"
loadmodule "/usr/lib/ser/modules/uri.so"
loadmodule "/usr/lib/ser/modules/uri_db.so"
loadmodule "/usr/lib/ser/modules/domain.so"
loadmodule "/usr/lib/ser/modules/mediaproxy.so"
loadmodule "/usr/lib/ser/modules/nathelper.so"
loadmodule "/usr/lib/ser/modules/textops.so"
loadmodule "/usr/lib/ser/modules/avpops.so"
loadmodule "/usr/lib/ser/modules/permissions.so"

modparam("auth_db|permissions|uri_db|usrloc|domain", "db_url", "
mysql://ser:mypass@localhost/ser")
modparam("auth_db", "calculate_ha1", 1)
modparam("auth_db", "password_column", "password")

modparam("nathelper", "rtpproxy_disable", 1)
modparam("nathelper", "natping_interval", 0)

modparam("mediaproxy","natping_interval", 30)
modparam("mediaproxy","mediaproxy_socket", "/var/run/mediaproxy.sock")
modparam("mediaproxy","sip_asymmetrics","/etc/ser/sip-clients")
modparam("mediaproxy","rtp_asymmetrics","/etc/ser/rtp-clients")

modparam("usrloc", "db_mode", 2)

modparam("registrar", "nat_flag", 6)

modparam("rr", "enable_full_lr", 1)

modparam("tm", "fr_inv_timer", 27)
modparam("tm", "fr_inv_timer_avp", "inv_timeout")

modparam("permissions", "db_mode", 1)
modparam("permissions", "trusted_table", "trusted")

# -------------------------  request routing logic -------------------

# main routing logic

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
        # -----------------------------------------------------------------
        if (method=="INVITE" && client_nat_test("3")) {
                # INSERT PROXY IP ADDRESS HERE
                record_route_preset(" 2xx.xxx.xxx.xxx:5060;nat=yes");
        } else if (method!="REGISTER") {
               record_route();
        };

        # -----------------------------------------------------------------
        # Call Tear Down Section
        # -----------------------------------------------------------------
        if (method=="BYE" || method=="CANCEL") {
                end_media_session();
        };

        # -----------------------------------------------------------------
        # Loose Route Section
        # -----------------------------------------------------------------
        if (loose_route()) {

                if ((method=="INVITE" || method=="REFER") && !has_totag())
                {
                        sl_send_reply("403", "Use From=ID");
                        break;
                };

                if (method=="INVITE")
                {
                        if (!allow_trusted())
                        {
                                if (!proxy_authorize("","subscriber"))
                                {
                                        proxy_challenge("","0");
                                        break;
                                } else if (!check_from()) {

sl_send_reply("403", "user From=ID");
                                                                break;
                                                        };

                                consume_credentials();
                        };

                if (client_nat_test("3") || search("^Route:.*;nat=yes")){
                                setflag(6);
                                use_media_proxy();
                        };

                };

                route(1);
                break;
        };

        # -----------------------------------------------------------------
        # Call Type Processing Section
        # -----------------------------------------------------------------
                if (!is_uri_host_local()) {
                        if (is_from_local() || allow_trusted()) {
                        route(4);
                        route(1);
                } else { sl_send_reply("403", "Forbidden-two");
                };
                break;
        };

        if (method=="ACK") {
                route(1);
                break;
        } if (method=="CANCEL") {
                route(1);
                break;
        } else if (method=="INVITE") {
                route(3);
                break;
        } else  if (method=="REGISTER") {
                route(2);
                break;
        };

        lookup("aliases");

        if (!is_uri_host_local()) {
                route(4);
                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
        # -----------------------------------------------------------------

        sl_send_reply("100", "Trying");

        if (!search("^Contact:[ ]*\*") && client_nat_test("7")) {
                setflag(6);
                fix_nated_register();
                force_rport();
        };

        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] {

        # -----------------------------------------------------------------
        # INVITE Message Handler
        # -----------------------------------------------------------------

        if (client_nat_test("3")) {
                setflag(7);
                force_rport();
                fix_nated_contact();
        };

        if (!allow_trusted())
        {
                if (!proxy_authorize("","subscriber")) {
                proxy_challenge("","0");
                break;
        } else if (!check_from()) {
                sl_send_reply("403", "Use From=ID");
                break;
        };

        consume_credentials();

        };
       lookup("aliases");

        if (!is_uri_host_local()) {
                route(4);
                route(1);
                break;
        };

        if (uri=~"^sip:011[0-9]*@")
        {
                route(4);
                route(5);
                break;
        };

        if (!lookup("location")) {
                if (uri=~"^sip:[0-9]{10}@") {
                        route(4);
                        route(5);
                        break;
                };

                sl_send_reply("404", "User Not Found");
                break;
        };

        route(4);
        route(1);
}

route[4] {

        # -----------------------------------------------------------------
        # NAT Traversal Section
        # -----------------------------------------------------------------

        if (isflagset(6) || isflagset(7)) {
                if (!isflagset(8)) {
                        setflag(8);
                        use_media_proxy();
                };
        };
}

route[5]{
               rewritehost("Asterisk Server IP");
                avp_write("i:45", "inv_timeout");
                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();
        };
}
----------------------------------
sip.conf
----------------
[general]

port = 5060           ; Port to bind to (SIP is 5060)
bindaddr = 0.0.0.0     ; Address to bind to (all addresses on machine)
context = default

maxexpirey=180
defaultexpirey=160
autocreatepeer=yes
register => 1000:test at 2xx.xxx.xxx.xxx/5678

[ser]
type=friend
username=1000
secret=test
fromdomain=2xx.xxx.xxx.xxx
host=2xx.xxx.xxx.xxx

[5678]
type=friend
username=5678
host=dynamic
canreinvite=no
---------------------------
exte.conf
exten => 5678,1,Dial(SIP/5678,20)
exten => 5678,2,Voicemail2(u5678)
exten => 5678,3,MusicOnHold()
exten => 5678,102,Voicemail2(b5678)
exten => 5678,103,Hangup


Nothing is happeing in my case that is I dont see any packet coming from ser
to asterisk for asterisk to ser. please guide me.

thanks for your reply.
arun
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sip-router.org/pipermail/sr-users/attachments/20061125/7dbbd4a8/attachment.htm>


More information about the sr-users mailing list