Scheduled Maintenance: We are aware of an issue with Google, AOL, and Yahoo services as email providers which are blocking new registrations. We are trying to fix the issue and we have several internal and external support tickets in process to resolve the issue. Please see: viewtopic.php?t=158230

 

 

 

opensips

Linux Kernel, Network, and Services configuration.
Post Reply
Message
Author
SevenofN
Posts: 1
Joined: 2016-04-28 08:13

opensips

#1 Post by SevenofN »

I have problem with rtpproxy at opensips 1.8.6. telephones does not received rtp packets. Help me please. Thanks My opensips.cfg
#
# $Id$
#
# OpenSIPS residential configuration script
# by OpenSIPS Solutions <team@opensips-solutions.com>
#
# This script was generated via "make menuconfig", from
# the "Residential" scenario.
# You can enable / disable more features / functionalities by
# re-generating the scenario with different options.#
# Please refer to the Core CookBook at:
# http://www.opensips.org/Resources/DocsCookbooks
# for a explanation of possible statements, functions and parameters.
#


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

debug=10
log_stderror=yes
log_facility=LOG_LOCAL1

fork=yes
children=4

/* uncomment the following lines to enable debugging */
#debug=6
fork=yes
#log_stderror=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

/* comment the next line to enable the auto discovery of local aliases
based on revers DNS on IPs */
auto_aliases=no


listen=udp:xxx.xxx.xxx.15:5060 # CUSTOMIZE ME

#disable_tcp=no
listen=tcp:xxx.xxx.xxx.15:5060 # CUSTOMIZE ME

#disable_tls=yes


####### Modules Section ########

#set module path
mpath="/usr/local/opensips/lib64/opensips/modules/"

#### SIGNALING module
loadmodule "signaling.so"

#### StateLess module
loadmodule "sl.so"

#### Transaction Module
loadmodule "tm.so"
modparam("tm", "fr_timer", 5)
modparam("tm", "fr_inv_timer", 30)
modparam("tm", "restart_fr_on_each_reply", 0)
modparam("tm", "onreply_avp_mode", 1)

#### Record Route Module
loadmodule "rr.so"
/* do not append from tag to the RR (no need for this script) */
modparam("rr", "append_fromtag", 1)
modparam("rr","add_username",1)

#### MAX ForWarD module
loadmodule "maxfwd.so"

#### SIP MSG OPerationS module
loadmodule "sipmsgops.so"

#### FIFO Management Interface
loadmodule "mi_fifo.so"
modparam("mi_fifo", "fifo_name", "/tmp/opensips_fifo")
modparam("mi_fifo", "fifo_mode", 0666)


#### URI module
loadmodule "uri.so"
modparam("uri", "db_url", "mysql://osrw:osrw@localhost/opensips")

##### TEXTTOPS
loadmodule "textops.so"


#### MYSQL module
loadmodule "db_mysql.so"

#### USeR LOCation module
loadmodule "usrloc.so"
modparam("usrloc", "nat_bflag", 10)
modparam("usrloc", "db_mode", 2)
modparam("usrloc", "db_url",
"mysql://osrw:osrw@localhost/opensips") # CUSTOMIZE ME


#### REGISTRAR module
loadmodule "registrar.so"
modparam("registrar", "tcp_persistent_flag", 7)
modparam("registrar", "received_avp", "$avp(received_nh)")
/* uncomment the next line not to allow more than 10 contacts per AOR */
#modparam("registrar", "max_contacts", 10)

#### ACCounting module
loadmodule "acc.so"
/* what special events should be accounted ? */
modparam("acc", "early_media", 0)
modparam("acc", "report_cancels", 0)
/* by default we do not adjust the direct of the sequential requests.
if you enable this parameter, be sure the enable "append_fromtag"
in "rr" module */
modparam("acc", "detect_direction", 0)
modparam("acc", "failed_transaction_flag", 3)
/* account triggers (flags) */
modparam("acc", "db_flag", 1)
modparam("acc", "db_missed_flag", 2)
modparam("acc", "db_url",
"mysql://osrw:osrw@localhost/opensips") # CUSTOMIZE ME


#### AUTHentication modules
loadmodule "auth.so"
loadmodule "auth_db.so"
modparam("auth_db", "calculate_ha1", yes)
modparam("auth_db", "password_column", "password")
modparam("auth_db", "db_url",
"mysql://osrw:osrw@localhost/opensips") # CUSTOMIZE ME
modparam("auth_db", "load_credentials", "")


#### ALIAS module
loadmodule "alias_db.so"
modparam("alias_db", "db_url",
"mysql://osrw:osrw@localhost/opensips") # CUSTOMIZE ME




#### PRESENCE modules
loadmodule "presence.so"
loadmodule "presence_xml.so"
modparam("presence|presence_xml", "db_url",
"mysql://osrw:osrw@localhost/opensips") # CUSTOMIZE ME
modparam("presence_xml", "force_active", 1)
modparam("presence", "server_address", "sip:xxx.xxx.xxx.15:5060") # CUSTOMIZE ME


#### DIALOG module
loadmodule "dialog.so"
modparam("dialog", "dlg_match_mode", 1)
modparam("dialog", "default_timeout", 21600) # 6 hours timeout
modparam("dialog", "db_mode", 2)
modparam("dialog", "db_url",
"mysql://osrw:osrw@localhost/opensips") # CUSTOMIZE ME

loadmodule "rtpproxy.so"
modparam("rtpproxy", "rtpproxy_sock", "udp:xxx.xxx.xxx.15:10000") # CUSTOMIZE ME
modparam("rtpproxy","rtpproxy_autobridge",0)


#### NAT modules
loadmodule "nathelper.so"
modparam("nathelper", "natping_interval", 10)
modparam("nathelper", "ping_nated_only", 1)
modparam("nathelper", "received_avp", "$avp(received_nh)")
modparam("nathelper", "force_socket","udp:xxx.xxx.xxx.15:10000")


#### DIALPLAN module
#loadmodule "dialplan.so"
#modparam("dialplan", "db_url","mysql://osrw:osrw@localhost/opensips") # CUSTOMIZE ME

### DOmanin
loadmodule "domain.so"
modparam("domain","db_url","mysql://osrw:osrw@localhost/opensips")
modparam("domain","db_mode",1)

loadmodule "uac.so"
modparam("uac","restore_mode","manual")
loadmodule "uac_auth.so"

loadmodule "nat_traversal.so"





####### Routing Logic ########

# main request routing logic

route{
force_rport();
if (nat_uac_test("23")) {
if (is_method("REGISTER")) {
fix_nated_register();
setbflag(10);
} else {
fix_nated_contact();
fix_nated_sdp("3");
setflag(10);
}
}


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()) {

# validate the sequential request against dialog
if ( $DLG_status!=NULL && !validate_dialog() ) {
xlog("In-Dialog $rm from $si (callid=$ci) is not valid according to dialog\n");
## exit;
}

if (is_method("BYE")) {
setflag(1); # do accounting ...
setflag(3); # ... even if the transaction fails
} else if (is_method("INVITE")) {
# even if in most of the cases is useless, do RR for
# re-INVITEs alos, as some buggy clients do change route set
# during the dialog.
engage_rtp_proxy("rcie");
record_route();
}

if (check_route_param("nat=yes"))
setflag(10);

# route it out to whatever destination was set by loose_route()
# in $du (destination URI).
route(1);
} else {
if (is_method("SUBSCRIBE") && $rd == "xxx.xxx.xxx.15:5060") { # CUSTOMIZE ME
# 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
exit;
}
}
sl_send_reply("404","Not here");
}
exit;
}

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

t_check_trans();

if ( !(is_method("REGISTER") ) ) {

if (from_uri==myself)

{

# authenticate if from local subscriber
# authenticate all initial non-REGISTER request that pretend to be
# generated by local subscriber (domain from FROM URI is local)
if (!proxy_authorize("", "subscriber")) {
proxy_challenge("", "0");
exit;
}
if (!db_check_from()) {
sl_send_reply("403","Forbidden auth ID");
exit;
}

consume_credentials();
# caller authenticated

} else {
# if caller is not local, then called number must be local

if (!uri==myself) {
send_reply("403","Rely forbidden");
exit;
}
}

}

# preloaded route checking
if (loose_route()) {
xlog("L_ERR",
"Attempt to route with preloaded Route's [$fu/$tu/$ru/$ci]");
if (!is_method("ACK"))
sl_send_reply("403","Preload Route denied");
exit;
}

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

# account only INVITEs
if (is_method("INVITE")) {

# create dialog with timeout
if ( !create_dialog("B") ) {
send_reply("500","Internal Server Error");
exit;
}

setflag(1); # do accounting
}


if (!uri==myself) {
append_hf("P-hint: outbound\r\n");

route(1);
}

# requests for my domain

if( is_method("PUBLISH|SUBSCRIBE"))
route(2);

if (is_method("REGISTER"))
{

# authenticate the REGISTER requests
if (!www_authorize("", "subscriber"))
{
www_challenge("", "0");
exit;
}

if (!db_check_to())
{
sl_send_reply("403","Forbidden auth ID");
exit;
}

if ( proto==TCP || 0 ) setflag(7);

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
alias_db_lookup("dbaliases");


# apply transformations from dialplan table
# dp_translate("0","$rU/$rU");



# do lookup with method filtering
if (!lookup("location","m")) {
if (!db_does_uri_exist()) {
send_reply("420","Bad Extension");
exit;
}

t_newtran();
t_reply("404", "Not Found");
exit;
}

if (isbflagset(10)) setflag(10);

# 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")) {

if (isflagset(10)) {
if(has_body("aplication/sdp"))
{
rtpproxy_offer("ro");
}

}

t_on_branch("2");
t_on_reply("2");
t_on_failure("1");
}

if (isflagset(10)) {
add_rr_param(";nat=yes");
}

if (!t_relay()) {
send_reply("500","Internal Error");
};
exit;
}


# Presence route
route[2]
{
if (!t_newtran())
{
sl_reply_error();
exit;
}

if(is_method("PUBLISH"))
{
handle_publish();
}
else
if( is_method("SUBSCRIBE"))
{
handle_subscribe();
}

exit;
}


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


onreply_route[2] {
if (nat_uac_test("1"))
fix_nated_contact();
fix_nated_sdp("3");
if ( isflagset(10) )
if(has_body("aplication/sdp"))rtpproxy_answer("ro");
xlog("incoming reply\n");
}


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

# uncomment the following lines if you want to block client
# redirect based on 3xx replies.
##if (t_check_status("3[0-9][0-9]")) {
##t_reply("404","Not found");
## exit;
##}


}



local_route {
if (is_method("BYE") && $DLG_dir=="UPSTREAM") {

acc_db_request("200 Dialog Timeout", "acc");

}
}

Rtp proxy run:
/usr/bin/rtpproxy -p /var/run/rtpproxy.pid -u rtpproxy -u root -l xxx.xxx.xxx.15 -s udp:xxx.xxx.xxx.15 10000

Post Reply