Hello *,
Does anybody have some ideas realizing such a scenario? I don't think using
Cisco SPS and SIP at the same time is such a good idea.
I'm not sure using Cisco SPS at all would be a good idea, as it is a typical
vendor pitfall. Our IVR is in a to early state to be used in a production
system. Maybe in 6 month...
-Raphael.
----- Original Message -----
From: <dzheng(a)cogeco.ca>
To: "Raphael Coeffic" <rco(a)iptel.org>
Sent: Wednesday, March 10, 2004 8:49 PM
Subject: Re: [Sems] (no subject)
> Raphael:
>
> Thank you for quick response. I get announment server working now. Our
company is evaluating VOIP SIP solution for our
> customers. Currently ,we are trying Cisco SPS. The reason I'll playing
with ser/sems is first , Cisco solution is pretty
> expensive, second there is no enough call features come with CSPS, for
example announcement, voice mail ,ivr etc. I have
> announcement, voice mail working now using ser/sems. Just wondering when
ivr is available. Or if you have solution on
> hand for my another two question.
>
> Note: Solution here I proposed is to use CSPS as core proxy platform and
forward certain URL to external
> production/module like ser to complete some adds-on features
>
> 1. I tried couple of SIP provider over Internet, addline and sipphone.
They are using ser according to sip signature.
> One of them build a test number that you can call from SIP phone. IVR will
prompt you to record your voice and play back
> It's such wonderful idea for troubleshooting. But I don't know how I can
do this
>
> 2.
> How can customer change call-forwarding number by dialing
*72+destination_number from phone like traditional phone or
> cell?
>
> Solution I'm looking for is once SIP sees invite to *72..., call a
external script( module) to extract "From" and
> "Destination_name" and update mysql database in CSPS ( Note:Cisco store
"call-forwarind" number per subscriber in mysql)
> and play "beep" or "announcement"
>
> I see such ability in ser but don't know how to pass "SIP message" to
external script.
>
> Hope you can help
>
> P.S I'm pretty strong on scripting and architecture. If you need me help
on this project. Let me know
>
> Thanks,
> David Z
>
>
>
> >
> > Hi David,
> >
> > i'm not sure my proposal will solve your problem...
> > Please send us your config file (ser) and a better description of what
you
> > want to do.
> >
> > -Raphael.
> >
> > ----- Original Message -----
> > From: "Raphael Coeffic" <rco(a)iptel.org>
> > To: "David Zheng" <dzheng(a)cogeco.ca>; <sems(a)lists.iptel.org>
> > Sent: Wednesday, March 10, 2004 3:03 PM
> > Subject: Re: [Sems] (no subject)
> >
> >
> > > Hello David,
> > >
> > > > I just compiled sems on Redhat Linux. How can I configure ser.cfg to
use
> > > > "announcement server". I copied "voice mail" routing section
mentioned
> > > > on website. Seems now all calls are forwarded to voicemail
> > >
> > > The second parameter of the vm function tells sems what plugin to use.
For
> > > example "voicemail" or "annoucement".
> > > If you want to redirect to annoucement server instead of voicemail,
just
> > > replace "voicemail" with "annoucement".
> > >
> > > -Raphael.
> > >
> > > _______________________________________________
> > > Sems mailing list
> > > sems(a)lists.iptel.org
> > > http://lists.iptel.org/cgi-bin/mailman/listinfo/sems
> >
Hi,
Could anyone send me pointers/urls on how to implement supplementary services
like call waiting, 3-way call, etc. using SER? do i need some complementary
software to achieve this?
Thanks really!
Enrique-
Hello
I would like to ask the list some questions about headers. I've been
reading the list and textops module, but I haven't found how to do this.
Imagine a scenario with 2 SER proxies. The first proxy adds a header
like:
Path: <....>
1 )How can the second proxy add a parameter to this header (and not a
new header)? The result that I'm looking for is something like:
Path: <....>,<....>
2 ) I know that SER can check whether a header is
present(is_present_hf()), but is it possible to extract the information
of a header and use it? I can't use search() function, because I don't
know the information, just the header name. I need to read some
parameters from a header of a SIP message to construct a new header.
Thank you very much for your time
Regards,
Curro
Hi,
I have loaded ser 0.8.12 and it is working fine. I have found no command to
show all the users which are created. Can somebody please tell me the
command to display all users created in database by secrctl add command?
Thanks,
Fahriz Aqeel Ansari,
Telogy Inc(TI.com).
Hi,
I've a problem that has already been submitted but i can't find the
answer, it concerns the pa module ..
I'm using Windows Messenger 4.7 but the users seem to be away (even if
they're not connected) whatever i do..
In the config file, i've added these lines
if(method=="SUBSCRIBE")
{
if(!t_newtran()){
sl_reply_error();
break;
};
if(!handle_subscription("registrar")){
sl_reply_error();
break;
};
break;
};
I've found these lines in an archive but i don't know if i'm right...
thx,
Laurent
Hello:
Can someone point me to documentation on configuring
the enum for SER 0.8.12?
Thanks,Steve
--
ISC Network Engineering
The University of Pennsylvania
3401 Walnut Street, Suite 221A
Philadelphia, PA 19104
voice: 215-573-8396
215-746-7903
fax: 215-898-9348
sip:blairs@upenn.edu
Hi guys,
why when I try to insert an alias i can see this:
[root@webby root]# serctl alias add 3330003 sip:giandrea@sip.quellidelpirana.it
sip:giandrea@sip.quellidelpirana.it
400 Table 'aliases' not found in memory, use save("aliases") or
lookup("aliases") in the configuration script first
bye, Andrea
Any help is appreciated...or could any one tell me...i would like to add one
structure element to the most important structure...sip_msg...is it good to
add to it...a simple fied of an integer....
>From: "Kapil Dhawan" <sersavvy(a)hotmail.com>
>To: <serusers(a)lists.iptel.org>
>Subject: [Serusers] forward
>Date: Fri, 5 Mar 2004 18:28:57 +0530
>
>hi i like to forward a request to another server for pstn call from inside
>my code...can u pls tell me where i can i find the definition for forward
>function.....which module holds it.....
>
>
>
>Regards
>
>Dhawan K
>_______________________________________________
>Serusers mailing list
>serusers(a)lists.iptel.org
>http://lists.iptel.org/mailman/listinfo/serusers
_________________________________________________________________
INDIA TODAY @ Rs. 5 for 5 years !
http://www.indiatoday.com/itoday/intlsubscription/itsubs/it_offer.html
Subcribe Now ...
i've been getting my sea legs with SER and am having trouble getting
rtpproxy to nathelper to work correctly with my setup. since everything
works fine if i test the scenario with a freeworld dialup account, i'm
assuming that my problems are solely due to the vastness of my ignorance
on how to configure SER correctly.
i have three x-lite clients [ one is running on windows 2000 not sure of
the build number, but it's the latest download from the website; the
other two clients are both build 1101 on mac 10.2.3. SER running on a
rh9 box on a public IP with rtpproxy. i installed ser-0.8.12-0.i386.rpm
which i downloaded from the ftp server. the x-lite clients are sitting
behind a linksys befw11s4 nat router.
i can run SER without nathelper/rtpproxy and make and receive calls to
clients outside the my network. however, things fall apart quickly when
i try to run more than one client behind the nat [ lost audio, timeouts
etc] which i presume is what nathelper is supposed to deal with. if try
to run to use nathelper, i can't make a call from a one client to
another client behind the lan. the calls won't go through - they simply
timeout.
i downloaded and compiled rtpproxy which i obtained from the portaone
website and simply started it from the command line. i can't figure out
how to get any debugging messages from rtpproxy, but i can see that the
process exists and /var/run/rtpproxy.sock is created.
i altered ser.cfg using the template i found in the ser-0.8.12_src
tarball [ /modules/nathelper/nathelper.cfg ]. see my config below [1].
i understand that things have changed quite a bit in the CVS head, but
i tried to compile and install the latest CVS version, but i ran into a
host of config errors using the nathelper.cfg supplied, so i decided to
backtrack, gather my wits, and stick with the released version.
the x-lite clients appear to register appropriately with the server [2 -
public ip addresses have been changed to protect the innocent]. to my
untrained eye, these messages look the same as what i see when i test
things using freeworld dialup accounts and i can make a call to another
client on the same lan segment - i.e. the internal IP addresses are
being sent. the location database also shows that the internal IP
addresses are being used [3], but i don't know if this is what i want or
not. oh. i'm also using my.public.box - a FQDN - as in the x-lite
fields where it asks for "Domain/Realm", "SIP Proxy" and "Out Bound Proxy".
so anyone care to grab me by the lapels and point out what i'm obviously
doing wrong :-)
[1]
#
# $Id: ser.cfg,v 1.21.4.1 2003/11/10 15:35:15 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)
/* 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)
#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/nathelper.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 --
# 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)
alias="my.public.box"
# ------------------------- 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 ( msg:len > max_len ) {
sl_send_reply("513", "Message too big");
break;
};
# compulsory processing of Route header fields and adding RR
loose_route();
/* registration (uses rewritten contacts) */
if (method=="REGISTER") {
save("location");
break;
};
if (method=="INVITE") {
record_route();
if (isflagset(1)) { # ATA ?
fix_nated_sdp("3");
};
/* set up reply processing */
t_on_reply("1");
};
if (method == "INVITE" || method == "CANCEL") {
if (!lookup("location")) {
sl_send_reply("404", "Not Found");
break;
};
};
/* set up reply processing and forward statefuly */
t_relay();
}
# all incoming replies for t_onrepli-ed transactions enter here
onreply_route[1] {
if (status=~"2[0-9][0-9]")
fix_nated_contact();
fix_nated_sdp("3");
}
[2]
Established SIP protocol listen on: 192.168.1.100:5060
Discovered Restricted Cone NAT Firewall
SIP: 192.168.1.100:5060
RTP: 192.168.1.100:8000
NAT: my.router.public.ip
PROXY#0: ser.public.ip:5060
OUTBOUND-PROXY#0: ser.public.ip:5060
SEND >> ser.public.ip:5060
REGISTER sip:my.public.box SIP/2.0
Via: SIP/2.0/UDP
192.168.1.100:5060;rport;branch=z9hG4bK9DF27D98551C11D882E3000393B930BA
From: snowdeal <sip:123@my.public.box>
To: snowdeal <sip:123@my.public.box>
Contact: "snowdeal" <sip:123@192.168.1.100:5060>
Call-ID: 9DA51D06551C11D882E3000393B930BA(a)my.public.box
CSeq: 56648 REGISTER
Expires: 1800
Max-Forwards: 70
User-Agent: X-Lite build 1101
Content-Length: 0
RECEIVE << ser.public.ip:5060
SIP/2.0 200 OK
Via: SIP/2.0/UDP
192.168.1.100:5060;rport=5060;branch=z9hG4bK9DF27D98551C11D882E3000393B930BA;received=my.router.public.ip
From: snowdeal <sip:123@my.public.box>
To: snowdeal
<sip:123@my.public.box>;tag=b27e1a1d33761e85846fc98f5f3a7e58.3894
Call-ID: 9DA51D06551C11D882E3000393B930BA(a)my.public.box
CSeq: 56648 REGISTER
Contact: <sip:123@192.168.1.100:5060>;q=0.00;expires=1800
Server: Sip EXpress router (0.8.12 (i386/linux))
Content-Length: 0
Warning: 392 ser.public.ip:5060 "Noisy feedback tells: pid=21653
req_src_ip=my.router.public.ip req_src_port=5060
in_uri=sip:my.public.box out_uri=sip:my.public.box via_cnt==1"
----------
Established SIP protocol listen on: 192.168.1.101:5060
Discovered Restricted Cone NAT Firewall
SIP: 192.168.1.101:5060
RTP: 192.168.1.101:8000
NAT: my.router.public.ip
PROXY#0: 69.55.224.151:5060
OUTBOUND-PROXY#0: 69.55.224.151:5060
SEND >> ser.public.ip:5060
REGISTER sip:my.public.box SIP/2.0
Via: SIP/2.0/UDP
192.168.1.101:5060;rport;branch=z9hG4bKAC7BFFFD551C11D8B317000A957BC13A
From: kristine <sip:456@my.public.box>
To: kristine <sip:456@my.public.box>
Contact: "kristine" <sip:456@192.168.1.101:5060>
Call-ID: AC7B8E18551C11D8B317000A957BC13A(a)my.public.box
CSeq: 55034 REGISTER
Expires: 1800
Max-Forwards: 70
User-Agent: X-Lite build 1101
Content-Length: 0
RECEIVE << ser.public.ip:5060
SIP/2.0 200 OK
Via: SIP/2.0/UDP
192.168.1.101:5060;rport=15060;branch=z9hG4bKAC7BFFFD551C11D8B317000A957BC13A;received=my.router.public.ip
From: kristine <sip:456@my.public.box>
To: kristine
<sip:456@my.public.box>;tag=b27e1a1d33761e85846fc98f5f3a7e58.b0ef
Call-ID: AC7B8E18551C11D8B317000A957BC13A(a)my.public.box
CSeq: 55034 REGISTER
Contact: <sip:456@192.168.1.101:5060>;q=0.00;expires=1800
Server: Sip EXpress router (0.8.12 (i386/linux))
Content-Length: 0
Warning: 392 ser.public.ip:5060 "Noisy feedback tells: pid=21658
req_src_ip=my.router.public.ip req_src_port=15060
in_uri=sip:my.public.box out_uri=sip:my.public.box via_cnt==1
[3]
===Domain list===
---Domain---
name : 'location'
size : 512
table: 0x402d60d8
d_ll {
n : 2
first: 0x402d80e0
last : 0x402d81c8
}
...Record(0x402d80e0)...
domain: 'location'
aor : '123'
~~~Contact(0x402d8120)~~~
domain : 'location'
aor : '123'
Contact: 'sip:123@192.168.1.100:5060'
Expires: 583
q : 0.00
Call-ID: '9DA51D06551C11D882E3000393B930BA(a)my.public.box'
CSeq : 56648
replic : 0
State : CS_NEW
Flags : 0
next : (nil)
prev : (nil)
~~~/Contact~~~~
.../Record...
...Record(0x402d81c8)...
domain: 'location'
aor : '456'
~~~Contact(0x402d8208)~~~
domain : 'location'
aor : '456'
Contact: 'sip:456@192.168.1.101:5060'
Expires: 614
q : 0.00
Call-ID: 'AC7B8E18551C11D8B317000A957BC13A(a)my.public.box'
CSeq : 55034
replic : 0
State : CS_NEW
Flags : 0
next : (nil)
prev : (nil)
~~~/Contact~~~~
.../Record...
---/Domain---
===/Domain list===
Hello Guru,
I try SER with FreeRadius, but I alway get the error when start SER
"ERROR: dab config file (10 errors)"
I've include my ser.cfg for your reference.
Any info, help is hightly appreciated.
Thank you & regards,
Anton
ser.cfg:
#
# $Id: ser.cfg,v 1.21 2003/06/04 13:47:36 jiri Exp $
#
# simple quick-start config script
#
# ----------- global configuration parameters ------------------------
debug=3 # debug level (cmd line: -dddddddddd)
fork=yes
log_stderror=no # (cmd line: -E)
/* 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)
port=5060
children=4
fifo="/tmp/ser_fifo"
# ------------------ module loading ----------------------------------
# Uncomment this if you want to use SQL database
#loadmodule "/usr/local/lib/ser/modules/mysql.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"
# Uncomment this if you want digest authentication
# mysql.so must be loaded !
#loadmodule "/usr/local/lib/ser/modules/auth.so"
#loadmodule "/usr/local/lib/ser/modules/auth_db.so"
loadmodule "/usr/local/lib/ser/modules/auth_radius.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 --
# 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("auth_radius", "radius_config", "/usr/local/etc/radiusclient/radiusclient.conf")
modparam("auth_radius", "service_type", 15)
# ------------------------- 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 comman
# with proper names and addresses in it)
if (uri==myself) {
if (method=="REGISTER") {
# Uncomment this if you want to use digest authentication
if (!radius_www_authorize("") {
www_challenge("", "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();
};
}