Ricardo,
Can you help us in setting OpenSer as a central proxy for multiple Asterisk PSTN GWs,
we current have trouble in routing UAs call through OpenSer without being registered with
Asterisk..
We like to just have OpenSer registered with all the Asterisk and OpenSer will be the AAA
proxy for SIP users, once authenticated through MYSQL db look up, OpenSer will pass the
call to Asterisk Box.
Asterisk Boxes will then make connection to PSTN or VM service.
Please see the script below and comment.
Thank you in advance,
Michael
--------------------------------------------------------------------------------------------------
#
# $Id: openser.cfg,v 1.6 2006/02/15 18:23:46 bogdan_iancu Exp $
#
# simple quick-start config script
#
# ----------- global configuration parameters ------------------------
debug=3 # debug level (cmd line: -dddddddddd)
fork=yes # Set to no to enter debugging mode
log_stderror=no # (cmd line: -E) Set to yes to enter debugging mode
check_via=no # (cmd. line: -v)
dns=no # (cmd. line: -r)
rev_dns=no # (cmd. line: -R)
port=5060
children=4
fifo="/tmp/openser_fifo"
#
# uncomment the following lines for TLS support
#disable_tls = 0
#listen = tls:your_IP:5061
#tls_verify = 1
#tls_require_certificate = 0
#tls_method = TLSv1
#tls_certificate =
"/build/buildd/openser-1.1.0/debian/openser/etc/openser/tls/user/user-cert.pem"
#tls_private_key =
"/build/buildd/openser-1.1.0/debian/openser/etc/openser/tls/user/user-privkey.pem"
#tls_ca_list =
"/build/buildd/openser-1.1.0/debian/openser/etc/openser/tls/user/user-calist.pem"
# ------------------ module loading ----------------------------------
# Uncomment this if you want to use SQL database
loadmodule "/usr/lib/openser/modules/mysql.so"
loadmodule "/usr/lib/openser/modules/domain.so"
loadmodule "/usr/lib/openser/modules/sl.so"
loadmodule "/usr/lib/openser/modules/tm.so"
loadmodule "/usr/lib/openser/modules/rr.so"
loadmodule "/usr/lib/openser/modules/maxfwd.so"
loadmodule "/usr/lib/openser/modules/usrloc.so"
loadmodule "/usr/lib/openser/modules/mediaproxy.so"
loadmodule "/usr/lib/openser/modules/registrar.so"
loadmodule "/usr/lib/openser/modules/textops.so"
loadmodule "/usr/lib/openser/modules/uri.so"
loadmodule "/usr/lib/openser/modules/uri_db.so"
loadmodule "/usr/lib/openser/modules/avpops.so"
loadmodule "/usr/lib/openser/modules/permissions.so"
# Uncomment this if you want digest authentication
# mysql.so must be loaded !
loadmodule "/usr/lib/openser/modules/auth.so"
loadmodule "/usr/lib/openser/modules/auth_db.so"
# ----------------- setting module-specific parameters ---------------
# -- usrloc params --
#modparam("usrloc", "db_mode", 0)
modparam("auth_db|permissions|uri_db|usrloc",
"db_url", "mysql://openser:openserrw@localhost/openser")
# Uncomment this if you want to use SQL database
# for persistent storage and comment the previous line
#modparam("usrloc", "db_mode", 2)
# -- auth params --
# Uncomment if you are using auth module
#
modparam("auth_db", "calculate_ha1", yes)
#
# If you set "calculate_ha1" parameter to yes (which true in this config),
# uncomment also the following parameter)
#
modparam("auth_db", "password_column", "password")
# -- rr params --
# add value to ;lr param to make some broken UAs happy
modparam("rr", "enable_full_lr", 1)
modparam("permissions", "db_mode", 1)
modparam("permissions", "trusted_table", "trusted")
# ------------------------- 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");
exit;
};
if (msg:len >= 2048 ) {
sl_send_reply("513", "Message too big");
exit;
};
# 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();
# -----------------------------------------------------------------
# Call Tear Down Section
# -----------------------------------------------------------------
if (method=="BYE" || method=="CANCEL") {
end_media_session();
};
# subsequent messages withing a dialog should take the
# path determined by record-routing
if (loose_route()) {
# mark routing logic in request
append_hf("P-hint: rr-enforced\r\n");
if (method=="INVITE") {
if (!allow_trusted()) {
if (!proxy_authorize("","subscriber")) {
proxy_challenge("","0");
exit;
} else if (!check_from()) {
sl_send_reply("403", "Use From=ID");
exit;
};
consume_credentials();
};
if (client_nat_test("3")||search("^Route:.*;nat=yes")){
setflag(6);
use_media_proxy();
};
};
route(1);
};
if (!uri==myself) {
# mark routing logic in request
append_hf("P-hint: outbound\r\n");
# if you have some interdomain connections via TLS
#if(uri=~"(a)tls_domain1.net") {
# t_relay("tls:domain1.net");
# exit;
#} else if(uri=~"(a)tls_domain2.net") {
# t_relay("tls:domain2.net");
# exit;
#}
route(1);
};
# if the request is for other domain use UsrLoc
# (in case, it does not work, use the following command
# with proper names and addresses in it)
if (uri!=myself) {
route(3);
return;
};
if (uri==myself) {
if (method=="REGISTER") {
# Uncomment this if you want to use digest authentication
if (!www_authorize("192.168.0.104", "subscriber")) {
www_challenge("192.168.0.104", "0");
exit;
};
save("location");
exit;
};
lookup("aliases");
if (!uri==myself) {
append_hf("P-hint: outbound alias\r\n");
route(1);
};
# native SIP destinations are handled using our USRLOC DB
if (lookup("location")) {
append_hf("P-hint: usrloc applied\r\n");
}
else if (uri=~"sip:[0-9]{10}@.*") {
route(3);
}
else {
sl_send_reply("404", "Not Found");
exit;
}
};
route(1);
}
route[1] {
# send it out now; use stateful forwarding as it works reliably
# even for UDP2TCP
if (!t_relay()) {
sl_reply_error();
};
exit;
}
route[3] {
rewriteuser("citywide");
rewriteuserpass("wide2city");
rewritehostport("voip.victoria.tc.ca:5060");
forward("voip.victoria.tc.ca");
append_hf("P-hint: LOCAL CALL FORWARDED TO IPBX\r\n");
if (!t_relay()) {
sl_reply_error();
return;
};
exit;
}
------------------------------------------------------------------------------------------------------------------------------------------
----- Original Message -----
From: "Ricardo Carvalho" <rjcarvalho(a)reit.up.pt>
To: "Daryl Sanders" <daryl.sanders(a)gmail.com>
Cc: <users(a)openser.org>
Sent: Wednesday, March 21, 2007 11:13 AM
Subject: Re: [Users] To: header in e.164 format - adding a plus
You may use the following syntax:
subst('/^To:(.*)@(.*)/To:+\1@\2/');
Hope it helps,
Regards,
Ricardo.
Daryl Sanders wrote:
One of my providers requires the To: header to be
in e.164 format with
a "+" in front of it. Since there is no uac_replace_to() function yet,
what are my options for adding this plus symbol?
Before anyone suggests it... I cannot just use another provider. I
must find a solution to add the plus symbol.
Thanks,
Daryl
_______________________________________________
Users mailing list
Users(a)openser.org
http://openser.org/cgi-bin/mailman/listinfo/users
_______________________________________________
Users mailing list
Users(a)openser.org
http://openser.org/cgi-bin/mailman/listinfo/users
--
No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.5.446 / Virus Database: 268.18.16/729 - Release Date: 3/21/2007 7:52 AM
--------------------------------------------------------------------------------
I am using the free version of SPAMfighter for private users.
It has removed 324 spam emails to date.
Paying users do not have this message in their emails.
Try SPAMfighter for free now!