Error no audio devices available

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Error no audio devices available

VoIPRookie
Hi everyone,

I have installed OpenSIPS 1.4.4 recently on a ubuntu 8.04, I have 3 UAC configured. Two of them are SJphone which are within the same network. One of them (Xlite) is outside the network and behind NAT. I am facing two problems.

1. The SJphone within network works fine but user hear his own echo.
2. XLite outside network giving the error "Error no audio devices available"

The config file is as follows:

####### Global Parameters #########

fork=yes
children=4

/* uncomment the following lines to enable debugging */
debug=6
log_stderror=no
log_facility=LOG_LOCAL0

/* uncomment the next line to disable TCP (default on) */
disable_tcp=yes

/* uncomment the next line to enable the auto temporary blacklisting of
   not available destinations (default disabled) */
#disable_dns_blacklist=no

/* uncomment the next line to enable IPv6 lookup after IPv4 dns
   lookup failures (default disabled) */
#dns_try_ipv6=yes


port=5060

/* uncomment and configure the following line if you want opensips to
   bind on a specific interface/port/proto (default bind on all available) */
listen=udp:mydomain.com:5060
listen=udp:999.999.1.2:5060
listen=udp:127.0.0.1:5060

#set module path
mpath="/usr/local/lib/opensips/modules/"
alias=mydomain.com

/* uncomment next line for MySQL DB support */
loadmodule "db_mysql.so"
loadmodule "sl.so"
loadmodule "tm.so"
loadmodule "rr.so"
loadmodule "maxfwd.so"
loadmodule "usrloc.so"
loadmodule "registrar.so"
loadmodule "textops.so"
loadmodule "mi_fifo.so"
loadmodule "uri_db.so"
loadmodule "uri.so"
loadmodule "xlog.so"
loadmodule "acc.so"
/* uncomment next lines for MySQL based authentication support
   NOTE: a DB (like db_mysql) module must be also loaded */
loadmodule "auth.so"
loadmodule "auth_db.so"
/* uncomment next line for aliases support
   NOTE: a DB (like db_mysql) module must be also loaded */
loadmodule "alias_db.so"
/* uncomment next line for multi-domain support
   NOTE: a DB (like db_mysql) module must be also loaded
   NOTE: be sure and enable multi-domain support in all used modules
         (see "multi-module params" section ) */
loadmodule "domain.so"
/* uncomment the next two lines for presence server support
   NOTE: a DB (like db_mysql) module must be also loaded */
#loadmodule "presence.so"
#loadmodule "presence_xml.so"


# ----------------- setting module-specific parameters ---------------
modparam("mi_fifo", "fifo_name", "/tmp/opensips_fifo")
modparam("rr", "enable_full_lr", 1)
modparam("rr", "append_fromtag", 0)
modparam("registrar", "method_filtering", 1)
modparam("uri_db", "use_uri_table", 0)
modparam("uri_db", "db_url", "")

modparam("acc", "early_media", 1)
modparam("acc", "report_ack", 1)
modparam("acc", "report_cancels", 1)
modparam("acc", "detect_direction", 0)
modparam("acc", "failed_transaction_flag", 3)
modparam("acc", "log_flag", 1)
modparam("acc", "log_missed_flag", 2)
modparam("acc", "db_flag", 1)
modparam("acc", "db_missed_flag", 2)


modparam("usrloc", "db_mode",   2)
modparam("auth_db", "calculate_ha1", yes)
modparam("auth_db", "password_column", "password")



####### Routing Logic ########
route{

    if (!mf_process_maxfwd_header("10")) {
        sl_send_reply("483","Too Many Hops");
        exit;
    }

    if (has_totag()) {
        # sequential request withing a dialog should
        # take the path determined by record-routing
        if (loose_route()) {
            if (is_method("BYE")) {
                setflag(1); # do accounting ...
                setflag(3); # ... even if the transaction fails
            }
            route(1);
        } else {
            /* uncomment the following lines if you want to enable presence */
            ##if (is_method("SUBSCRIBE") && $rd == "your.server.ip.address") {
            ##    # in-dialog subscribe requests
            ##    route(2);
            ##    exit;
            ##}
            if ( is_method("ACK") ) {
                if ( t_check_trans() ) {
            # non loose-route, but stateful ACK; must be an ACK after a 487 or e.g. 404 from upstream server
                    t_relay();
                    exit;
                } else {
                    # ACK without matching transaction ... ignore and discard.\n");
                    exit;
                }
            }
            sl_send_reply("404","Not here");
        }
        exit;
    }

    #initial requests

    # CANCEL processing
    if (is_method("CANCEL"))
    {
        if (t_check_trans())
            t_relay();
        exit;
    }

    t_check_trans();


    # record routing
    if (!is_method("REGISTER|MESSAGE"))
        record_route();

    # account only INVITEs
    if (is_method("INVITE")) {
        setflag(1); # do accounting
    }
    if (!uri==myself)
    /* replace with following line if multi-domain support is used */
    ##if (!is_uri_host_local())
    {
        append_hf("P-hint: outbound\r\n");
        route(1);
    }

    # requests for my domain

    /* uncomment this if you want to enable presence server
       and comment the next 'if' block
       NOTE: uncomment also the definition of route[2] from  below */
    ##if( is_method("PUBLISH|SUBSCRIBE"))
    ##        route(2);

    if (is_method("PUBLISH"))
    {
        sl_send_reply("503", "Service Unavailable");
        exit;
    }
  

    if (is_method("REGISTER"))
    {
        # authenticate the REGISTER requests (uncomment to enable auth)
        if (!www_authorize("", "subscriber"))
        {
            www_challenge("", "0");
            exit;
        }
      

        if (!save("location"))
            sl_reply_error();

        exit;
    }

    if ($rU==NULL) {
        # request with no Username in RURI
        sl_send_reply("484","Address Incomplete");
        exit;
    }

    # apply DB based aliases (uncomment to enable)
    ##alias_db_lookup("dbaliases");

    if (!lookup("location")) {
        switch ($retcode) {
            case -1:
            case -3:
                t_newtran();
                t_reply("404", "Not Found");
                exit;
            case -2:
                sl_send_reply("405", "Method Not Allowed");
                exit;
        }
    }

    # when routing via usrloc, log the missed calls also
    setflag(2);

    route(1);
}


route[1] {
    # for INVITEs enable some additional helper routes
    if (is_method("INVITE")) {
        t_on_branch("2");
        t_on_reply("2");
        t_on_failure("1");
    }

    if (!t_relay()) {
        sl_reply_error();
    };
    exit;
}


branch_route[2] {
    xlog("new branch at $ru\n");
}


onreply_route[2] {
    xlog("incoming reply\n");
}


failure_route[1] {
    if (t_was_cancelled()) {
        exit;
    }

}




_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Reply | Threaded
Open this post in threaded view
|

Re: Error no audio devices available

Bogdan-Andrei Iancu
Hi Khan,

The xlite UAC does not work as it is in a different network and media
cannot flow directly between the caller and callee - for this to work
you need to use a media relay.

Regards,
Bogdan

Khan Friend wrote:

> Hi everyone,
>
> I have installed OpenSIPS 1.4.4 recently on a ubuntu 8.04, I have 3
> UAC configured. Two of them are SJphone which are within the same
> network. One of them (Xlite) is outside the network and behind NAT. I
> am facing two problems.
>
> 1. The SJphone within network works fine but user hear his own echo.
> 2. XLite outside network giving the error "Error no audio devices
> available"
>
> The config file is as follows:
>
> ####### Global Parameters #########
>
> fork=yes
> children=4
>
> /* uncomment the following lines to enable debugging */
> debug=6
> log_stderror=no
> log_facility=LOG_LOCAL0
>
> /* uncomment the next line to disable TCP (default on) */
> disable_tcp=yes
>
> /* uncomment the next line to enable the auto temporary blacklisting of
>    not available destinations (default disabled) */
> #disable_dns_blacklist=no
>
> /* uncomment the next line to enable IPv6 lookup after IPv4 dns
>    lookup failures (default disabled) */
> #dns_try_ipv6=yes
>
>
> port=5060
>
> /* uncomment and configure the following line if you want opensips to
>    bind on a specific interface/port/proto (default bind on all
> available) */
> listen=udp:mydomain.com:5060 <http://mydomain.com:5060>
> listen=udp:999.999.1.2:5060
> listen=udp:127.0.0.1:5060 <http://127.0.0.1:5060>
>
> #set module path
> mpath="/usr/local/lib/opensips/modules/"
> alias=mydomain.com <http://mydomain.com>
>
> /* uncomment next line for MySQL DB support */
> loadmodule "db_mysql.so"
> loadmodule "sl.so"
> loadmodule "tm.so"
> loadmodule "rr.so"
> loadmodule "maxfwd.so"
> loadmodule "usrloc.so"
> loadmodule "registrar.so"
> loadmodule "textops.so"
> loadmodule "mi_fifo.so"
> loadmodule "uri_db.so"
> loadmodule "uri.so"
> loadmodule "xlog.so"
> loadmodule "acc.so"
> /* uncomment next lines for MySQL based authentication support
>    NOTE: a DB (like db_mysql) module must be also loaded */
> loadmodule "auth.so"
> loadmodule "auth_db.so"
> /* uncomment next line for aliases support
>    NOTE: a DB (like db_mysql) module must be also loaded */
> loadmodule "alias_db.so"
> /* uncomment next line for multi-domain support
>    NOTE: a DB (like db_mysql) module must be also loaded
>    NOTE: be sure and enable multi-domain support in all used modules
>          (see "multi-module params" section ) */
> loadmodule "domain.so"
> /* uncomment the next two lines for presence server support
>    NOTE: a DB (like db_mysql) module must be also loaded */
> #loadmodule "presence.so"
> #loadmodule "presence_xml.so"
>
>
> # ----------------- setting module-specific parameters ---------------
> modparam("mi_fifo", "fifo_name", "/tmp/opensips_fifo")
> modparam("rr", "enable_full_lr", 1)
> modparam("rr", "append_fromtag", 0)
> modparam("registrar", "method_filtering", 1)
> modparam("uri_db", "use_uri_table", 0)
> modparam("uri_db", "db_url", "")
>
> modparam("acc", "early_media", 1)
> modparam("acc", "report_ack", 1)
> modparam("acc", "report_cancels", 1)
> modparam("acc", "detect_direction", 0)
> modparam("acc", "failed_transaction_flag", 3)
> modparam("acc", "log_flag", 1)
> modparam("acc", "log_missed_flag", 2)
> modparam("acc", "db_flag", 1)
> modparam("acc", "db_missed_flag", 2)
>
>
> modparam("usrloc", "db_mode",   2)
> modparam("auth_db", "calculate_ha1", yes)
> modparam("auth_db", "password_column", "password")
>
>
>
> ####### Routing Logic ########
> route{
>
>     if (!mf_process_maxfwd_header("10")) {
>         sl_send_reply("483","Too Many Hops");
>         exit;
>     }
>
>     if (has_totag()) {
>         # sequential request withing a dialog should
>         # take the path determined by record-routing
>         if (loose_route()) {
>             if (is_method("BYE")) {
>                 setflag(1); # do accounting ...
>                 setflag(3); # ... even if the transaction fails
>             }
>             route(1);
>         } else {
>             /* uncomment the following lines if you want to enable
> presence */
>             ##if (is_method("SUBSCRIBE") && $rd ==
> "your.server.ip.address") {
>             ##    # in-dialog subscribe requests
>             ##    route(2);
>             ##    exit;
>             ##}
>             if ( is_method("ACK") ) {
>                 if ( t_check_trans() ) {
>             # non loose-route, but stateful ACK; must be an ACK after
> a 487 or e.g. 404 from upstream server
>                     t_relay();
>                     exit;
>                 } else {
>                     # ACK without matching transaction ... ignore and
> discard.\n");
>                     exit;
>                 }
>             }
>             sl_send_reply("404","Not here");
>         }
>         exit;
>     }
>
>     #initial requests
>
>     # CANCEL processing
>     if (is_method("CANCEL"))
>     {
>         if (t_check_trans())
>             t_relay();
>         exit;
>     }
>
>     t_check_trans();
>
>
>     # record routing
>     if (!is_method("REGISTER|MESSAGE"))
>         record_route();
>
>     # account only INVITEs
>     if (is_method("INVITE")) {
>         setflag(1); # do accounting
>     }
>     if (!uri==myself)
>     /* replace with following line if multi-domain support is used */
>     ##if (!is_uri_host_local())
>     {
>         append_hf("P-hint: outbound\r\n");
>         route(1);
>     }
>
>     # requests for my domain
>
>     /* uncomment this if you want to enable presence server
>        and comment the next 'if' block
>        NOTE: uncomment also the definition of route[2] from  below */
>     ##if( is_method("PUBLISH|SUBSCRIBE"))
>     ##        route(2);
>
>     if (is_method("PUBLISH"))
>     {
>         sl_send_reply("503", "Service Unavailable");
>         exit;
>     }
>  
>
>     if (is_method("REGISTER"))
>     {
>         # authenticate the REGISTER requests (uncomment to enable auth)
>         if (!www_authorize("", "subscriber"))
>         {
>             www_challenge("", "0");
>             exit;
>         }
>      
>
>         if (!save("location"))
>             sl_reply_error();
>
>         exit;
>     }
>
>     if ($rU==NULL) {
>         # request with no Username in RURI
>         sl_send_reply("484","Address Incomplete");
>         exit;
>     }
>
>     # apply DB based aliases (uncomment to enable)
>     ##alias_db_lookup("dbaliases");
>
>     if (!lookup("location")) {
>         switch ($retcode) {
>             case -1:
>             case -3:
>                 t_newtran();
>                 t_reply("404", "Not Found");
>                 exit;
>             case -2:
>                 sl_send_reply("405", "Method Not Allowed");
>                 exit;
>         }
>     }
>
>     # when routing via usrloc, log the missed calls also
>     setflag(2);
>
>     route(1);
> }
>
>
> route[1] {
>     # for INVITEs enable some additional helper routes
>     if (is_method("INVITE")) {
>         t_on_branch("2");
>         t_on_reply("2");
>         t_on_failure("1");
>     }
>
>     if (!t_relay()) {
>         sl_reply_error();
>     };
>     exit;
> }
>
>
> branch_route[2] {
>     xlog("new branch at $ru\n");
> }
>
>
> onreply_route[2] {
>     xlog("incoming reply\n");
> }
>
>
> failure_route[1] {
>     if (t_was_cancelled()) {
>         exit;
>     }
>
> }
>
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Users mailing list
> [hidden email]
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>  


_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users