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=~"@tls_domain1.net")
{
# t_relay("tls:domain1.net");
# exit;
#}
else if(uri=~"@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 -----
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@openser.org
>>
http://openser.org/cgi-bin/mailman/listinfo/users
>>
>>
>
>
>
>
> _______________________________________________
> Users mailing
list
> Users@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!