I need to send a prefix of 666# followed by full intl number without leading
0's.
eg. 666#442071016211
The PSTN are connecting me to a Cisco SIP Proxy server, which uses
Tech-prefixes eg 123# to separate and authenticate the calls into different
domains.
Can you please help me?
-----Original Message-----
From: Andreas Granig [mailto:andreas.granig@inode.info]
Sent: Tuesday, September 20, 2005 10:50 AM
To: Colin Jordan
Cc: serusers(a)lists.iptel.org; serusers-request(a)lists.iptel.org
Subject: Re: [Serusers] Handoff to PSTN with a set prefix
Colin Jordan wrote:
> # attemt handoff to PSTN
> if (uri=~"^sip:9[0-9] *(a)gaco.co.za") {
> log ("Forwarding to PSTN\n");
> t_relay_to_udp("217.15.11.87","5060");
> t_relay_to_tcp("217.15.11.87","5060");
> break;
> };
Hm? Both UDP and TCP?
Try:
if (uri=~"^sip:9[0-9] *(a)gaco.co.za") {
log ("Forwarding to PSTN\n");
prefix("666#");
t_relay_to_udp("217.15.11.87","5060");
break;
};
I'm not sure about the "#" and if it's parsed correctly or if it's
treated as start of a comment, haven't ever tried that.
Andy
I need to set a fixed prefix of, 666#, to enable me to break out to the PSTN
that I am sending my traffic. Will you please help me with the needed
commands and where to place it? Please find below the ser.cfg file:
________________________________
#
# $Id: ser.cfg,v 1.21.2.1 2003/07/30 16:46:18 andrei Exp $
#
# simple quick-start config script
#
# ----------- global configuration parameters ------------------------
#debug=3 # debug level (cmd line: -dddddddddd)
#fork=yes
#log_stderror=no # (cmd line: -E)
# new insterted statement
listen=66.8.91.200
listen=127.0.0.1
# hostname matching an allias will satify the condition uri-myself
alias=gaco.co.za
alias=66.8.91.200
/* Uncomment these lines to enter debugging mode
debug=7
fork=no
log_stderror=yes
*/
check_via=no # (cmd. line: -v)
dns=no # (cmd. line: -r)
rev_dns=no # (cmd. line: -R)
# this was commented
port=5060
children=4
fifo="/tmp/ser_fifo"
# ------------------ module loading ----------------------------------
# Uncomment this if you want to use SQL database
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"
# Uncomment this if you want digest authentication
# mysql.so must be loaded !
loadmodule "/usr/lib/ser/modules/auth.so"
loadmodule "/usr/lib/ser/modules/auth_db.so"
# ----------------- setting module-specific parameters ---------------
# -- usrloc params --
#modparam("usrloc", "db_mode", 0)
# Uncomment this if you want to use SQL database
# for persistent storage and comment the previous line
modparam("usrloc", "db_mode", 2)
# -- auth params --
# database location - NEW
#modparam("auth_db, "db_uri, "sql://ser:>heslo>@localhost/ser")
# 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)
# ------------------------- 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");
break;
};
if (len_gt( max_len )) {
sl_send_reply("513", "Message too big");
break;
};
# 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
record_route();
# loose-route processing
if (loose_route()) {
t_relay();
break;
};
# 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) {
if (method=="REGISTER") {
# Uncomment this if you want to use digest authentication
if (!www_authorize("gaco.co.za", "subscriber")) {
www_challenge("gaco.co.za", "0");
break;
};
save("location");
break;
};
# native SIP destinations are handled using our USRLOC DB
if (!lookup("location")) {
sl_send_reply("404", "Not Found");
break;
};
};
# forward to current uri now; use stateful forwarding; that
# works reliably even if we forward from TCP to UDP
if (!t_relay()) {
sl_reply_error();
};
# attemt handoff to PSTN
if (uri=~"^sip:9[0-9] *(a)gaco.co.za") {
log ("Forwarding to PSTN\n");
t_relay_to_udp("217.15.11.87","5060");
t_relay_to_tcp("217.15.11.87","5060");
break;
};
}
________________________________
DISCLAIMER: The information in this message is confidential and is legally
privileged. It is intended solely for the addressee. Access to this message by
anyone else is unauthorized.If receiving in error please accept our apologies
and notify the sender immediately. You must also delete the original
message from your machine. If you are not the intended recipient, any use,
disclosure, copying, distribution or action taken in reliance of it, is prohibited
and maybe
unlawful.
Hello,
We are working on establishing Radius-communication between SER and the
billing system Alepo RBS version 4.2, but we are experiencing some trouble
with this.
We think the problem might be caused by the way we have defined SER as a
network component in the Alepo RBS configuration file called 'NasCfgDbs' and
maybe how the SER dictionary is built up.
Does anyone have any experience with integration of SER with Alepo RBS? We
would appreciate any kind of help or tip.
Thanks in advance.
Best regards,
Thomas
Hi,
I configured SER to forward certain calls to asterisk for the
voicemail functionality. But when I forward the SIP request to Asterisk
my xlite softphone prompts "403", "Forbidden". This is my ser.cfg part
where i forward the certain uri to the asterisk.
if (uri=~"^sip:1[0-9]{3}@sip.philonline.com.*$") {
strip(1);
rewritehostport("202.84.24.47:5060");
t_relay();
break;
};
Thanks,
--
Ryan Pagquil
Infodyne Inc. - PhilOnline.com
3603 Antel Global Corporate Center
Doña Julia Vargas Ave.
Ortigas Center Pasig City
Tel: 687-0715
Web: www.philonline.com
hi,
i am facing the following situation.
UA1 calls a user(UA2) who does not answer. the control comes to
failure_route where i try another UA (UA3). but as UA3 rings, SER sends 408
Request timeout to UA1 and call gets disconnected.
this is the SIP message flow.
UA1 SER UA2
UA3
INVITE---------------->
INVITE-------------->
<----------------TRYING
<----------------RINGING
<------------------RINGING
CANCEL-------------->
<---------------------408
INVITE---------------------------------------->
<---------------------487
ACK------------------->
<-----------------------OK
<-------------------------------------------TRYING
<--------------------------------------------RINGING
(but UA already has got the busy tone) and does not hear this ringing.
if 408 was not sent to UA1, then the call could have been established.
what is going wrong,
regards,
tulika
Hello
I want to test a scenario with SER, MEDIAPROXY and Vovida B2BUA, but I'm
having some
problems. If someone has tested this before, I would like to ask you the
config files to help me.
When NATedUA1 calls NATedUA2, invite reaches NATedUA2. NATedUA2 sends
responses back to SER (100 trying 180 ringing) but SER doesn’t forward it
further to NATedUA1.I'm having problems when NatedUA2 send '100 Trying'
and '180 ringing' to SER, it forwards it to B2BUA, but then there is no
flow of messages.
NATedUA2
^
| 4.INVITE
|
1.INVITE 2.INVITE
NATedUA1 ----> SER+MEDIAPROXY ------> B2BUA
<-----
3. INVITE
ser.cfg is:
# Example ser.cfg for mediaproxy functionality
check_via=no # (cmd. line: -v)
dns=no # (cmd. line: -r)
rev_dns=no # (cmd. line: -R)
listen=72.21.40.107
port=5060
children=4
fifo="/tmp/ser_fifo"
# fifo_db_url="mysql://ser:heslo@localhost/ser"
loadmodule "/usr/local/lib/ser/modules/mysql.so"
loadmodule "/usr/local/lib/ser/modules/textops.so"
loadmodule "/usr/local/lib/ser/modules/sl.so"
loadmodule "/usr/local/lib/ser/modules/tm.so"
loadmodule "/usr/local/lib/ser/modules/rr.so"
loadmodule "/usr/local/lib/ser/modules/maxfwd.so"
loadmodule "/usr/local/lib/ser/modules/usrloc.so"
loadmodule "/usr/local/lib/ser/modules/registrar.so"
loadmodule "/usr/local/lib/ser/modules/domain.so"
loadmodule "/usr/local/lib/ser/modules/uri.so"
loadmodule "/usr/local/lib/ser/modules/mediaproxy.so"
loadmodule "/usr/local/lib/ser/modules/auth.so"
loadmodule "/usr/local/lib/ser/modules/auth_radius.so"
modparam("usrloc", "db_mode", 0)
#modparam("usrloc", "db_url","mysql://ser:heslo@localhost/ser")
modparam("mediaproxy", "natping_interval", 60)
modparam("registrar", "nat_flag", 2)
route{
if (!mf_process_maxfwd_header("10")) {
if (method!="ACK") {
sl_send_reply("483", "Too many hops");
};
break;
};
if (msg:len >= max_len) {
if (method!="ACK") {
sl_send_reply("513", "Message too big");
};
break;
};
if (method=="REGISTER") {
if (is_from_local()) {
# Mark as NAT'ed
if (client_nat_test("3")) {
setflag(2);
force_rport();
fix_contact();
};
if (!radius_www_authorize("72.21.40.107")) {
www_challenge("72.21.40.107", "0");
break;
} else if (!check_to()) {
sl_send_reply("403", "Username!=To not allowed");
break;
};
if (!save("location")) {
sl_reply_error();
};
} else {
sl_send_reply("403", "This domain is not served here");
};
break;
};
if (method=="INVITE") {
if (!(is_from_local() || is_uri_host_local())) {
sl_send_reply("403", "Relaying is forbidden");
break;
};
t_on_failure("1");
} else if (method == "BYE" || method == "CANCEL") {
end_media_session();
};
# Force subsequent messages to pass trough this proxy
if (method == "INVITE") {
record_route();
};
if (client_nat_test("3") && !search("^Record-Route:")) {
# Mark as NAT'ed
force_rport();
fix_contact();
};
#if (method=="INVITE") {
t_on_reply("1");
#};
if (is_uri_host_local()) {
if (!lookup("location")) {
sl_send_reply("404", "User not found");
break;
};
};
if (method=="INVITE" || method=="ACK") {
use_media_proxy();
};
if(!(src_port==5065 && src_ip==72.21.40.107)){
if (method=="INVITE" || method=="BYE") {
log("amit: Forwarding to B2bua\n");
forward(72.21.40.107,5065);
break;
};
};
if (loose_route()) {
if (method=="INVITE" || method=="ACK") {
use_media_proxy();
};
# end media session for BYE and CANCEL is done above
# before entering the loose route. no need to call it here
t_relay();
break;
};
if (!t_relay()) {
if (method=="INVITE" || method=="ACK") {
end_media_session();
};
sl_reply_error();
};
}
failure_route[1] {
end_media_session();
}
onreply_route[1] {
#if (status=~"(183)|(2[0-9][0-9])") {
if (status=~"[1-2][0-9][0-9])") {
if (client_nat_test("1")) {
fix_contact();
};
use_media_proxy();
};
}
Thanks for your help
amit
Hi All,
Using Onsip SER with Mediaproxy --no-fork I can see caller/called/relayed.
This is OK for local calls only. With or without mediaproxy I have audio both directions.
When I call to /from another network the phone rigning but no audio.
Can I relay /forward by IP address using mediaproxy and eventually redirect media streams throught a 3rd party ?
Thanks,
Frank
---------------------------------
Yahoo! for Good
Click here to donate to the Hurricane Katrina relief effort.
How the UA requests a service for proxy (openser)?
Is possible a direct communication between the UA and proxy?
For example... How the UA requests the blacklist's service?
Somebody has some suggestion?
--------------------------------------------------
Loide Mara Verdes de Jesus
6º período - Ciência da Computação / UFAM
Laboratório VoIP - UFAM
Hi,
I am actually testing with openser 0.10.0-dev12-tls and detected the
following problem:
When I use pseudo-variables $rs and $rr in a failure_route I get <null>
instead of reply status and reply reason in case of a failure response.
I think this is a bug.
Regards
Franz
Hi,
I have two PCs running Windows Messenger 5.0 and SER as registrar. I am
able to get Voice, Video, App Sharing, Whiteboard, Presence (peer to peer
only) working. However, I cannot get Instant Messaging to work.
When I look at my Ethereal capture, I see that with 5.0, INVITE is used to
start an IM session. The other client responds with TRYING, then OK.
However, it also sends a BYE immediately after sending the OK.
Subsequently when the originating client sends the MESSAGE, the other
client responds with an Error because "Call Leg does not exist".
Has anyone encountered this before? I've seen this problem being mentioned
in Google searches, but no answer so far.
Regards,
KokMeng Loh