Hello everybody
I want to use nathelper/rtpproxy to IPv4/IPv6 interworking, but I'm
having some problems.
I use ser 0.8.13-dev-29 (latest from cvs) and latest rtpproxy (20040107)
Ser config file is the same than nathelper example 4to6.cfg
Ser starts ok, UA's registers ok. INVITE, 100 Trying, 180 Ringing are
ok.
Nathelper rewrites SDP bodies ok. When UA2 answer, it sends 200 ok, UA1
receives 200 OK and sends ACK. This ACK is my problem, because SER drops
it, and never gets UA2.
I suppose that's a problem from my config file, but I can't figure out
what. Could you help me, please?
Thank you very much.
*
* I am trying to install SER on a new RedHat 9 system. I downloaded the
ser-mysql-0.8.12-0 package and attempted to install it. It fails with the
message 'ser = 0.8.12 is needed by ser-mysql-0.8.12-0'.
I installed and started SER 0.8.12 but the about package still fails to
install. Should this pacjkaged installation work? If so is there something
I am missing? docs/INSTALL does not mention any issues with this
package.
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,
I have a platform based in SER SIP proxy, and i would like to forward PSTN
calls to two Cisco gateways. How could implement the logic for send the
calls to the less loaded gateway?
Best regards.
G.
Hello. I've been lurking for a while and I'm hoping that I have a pretty
simple problem:
My BYE notifications don't seem to be forwarded in a proxy'd call forwarding
setup.
The call connects fine, and I can talk back and forth ok, but if I hang one
side the other remains connected.
I tracked it down to the BYE notification not being relayed, but I'm not
certain why. Please help!
Here is my ser.cfg:
debug=3
fork=no
log_stderror=yes
listen=69.20.20.192
loadmodule "/home/zebra/sys/lib/ser/modules/sl.so"
loadmodule "/home/zebra/sys/lib/ser/modules/tm.so"
loadmodule "/home/zebra/sys/lib/ser/modules/rr.so"
loadmodule "/home/zebra/sys/lib/ser/modules/exec.so"
modparam("exec", "setvars", 1)
route {
if(method=="REGISTER") {
log("REGISTER received\n");
sl_send_reply("200","Ok");
} else if(method=="BYE") {
log(1,"BYE received\n");
exec_msg("/home/zebra/bin/log_bye.php");
#sl_send_reply("200","Ok");
t_relay();
} else {
# all other cases
log(1,"message received");
exec_dset("/home/zebra/bin/route_call.php -l");
record_route();
t_relay();
}
}
===========
This is a very simple call forwarding arrangement.
However, when using this SER does nothing with the BYE notifications!
They just end up timing out. I've attached the output from sip_scenario.pl.
The proxy is 69.20.20.192.
Any advice would be greatly appreciated! This is causing me some headaches,
and maybe I'm just not understanding what I'm doing with SER.
I am new to ser.
After installing the ser, I tried to install mysql by following quick start steps but I got error saying "ser_mysql.sh: line 1:hen_ha1: command not found"
Here is what I did to install mysql:
mysh> rpm -i ser-mysql-0.8.12-0.i386.rpm
mysh> /usr/local/sbin/sh ser_mysql.sh create
MySql password for root: dud1234 (I put in my own password)
ser_mysql.sh line1: gen_ha1:command not found
HA1 calculation failed
Before I install mysql, ser works fine without Authentication. I can use my ip phone to make call.
Gary
hello friends,
sorry to disturb you people again and again iam newbie
i know ser from last two weeks only
as iam suffering with this problem from last week
i need help of you people i hope some body is kind
enough to help me out .
and my first scenario in simple ascii diagram
public ip (estara softphone)
/|\
|
|
\|/
SER server (public ip)
/|\
|
\|/
public ip (estara softphone)
my SER server is redhat linux 9.0
iam using stable version which i got through cvs
and first checking with the public ip to publics ip
here i could able to establish the call i.e in either
side i could able to listen the voice
in this iam not using any rtpproxy
------------------------------------------------------
[root@server sbin]# ser
Listening on
127.0.0.1 [127.0.0.1]:5060
<public ip>[public ip]:5060
Aliases: server.pol.net.in:5060 localhost:5060
localhost.localdomain:5060
stateless - initializing
[root@server sbin]# Maxfwd module- initializing
textops - initializing
0(0) INFO: udp_init: SO_RCVBUF is initially 65535
0(0) INFO: udp_init: SO_RCVBUF is finally 131070
0(0) INFO: udp_init: SO_RCVBUF is initially 65535
0(0) INFO: udp_init: SO_RCVBUF is finally 131070
9(0) INFO: fifo process starting: 17451
9(17451) SER: open_uac_fifo: fifo server up at
/tmp/ser_fifo...
8(17450) parse_nameaddr(): No < found
8(17450) parse_rr(): Error while parsing name-addr
8(17450) find_first_route(): Error while parsing
Route HF
6(17448) parse_nameaddr(): No < found
6(17448) parse_rr(): Error while parsing name-addr
6(17448) find_first_route(): Error while parsing
Route HF
6(17448) parse_nameaddr(): No < found
6(17448) parse_rr(): Error while parsing name-addr
6(17448) find_first_route(): Error while parsing
Route HF
7(17449) parse_nameaddr(): No < found
7(17449) parse_rr(): Error while parsing name-addr
7(17449) find_first_route(): Error while parsing
Route HF
6(17448) parse_nameaddr(): No < found
6(17448) parse_rr(): Error while parsing name-addr
6(17448) find_first_route(): Error while parsing
-------------------------------------------------------
this is the second scenario
public ip (msn messenger)
/|\
|
|
\|/
SER server (public ip)
/|\
|
\|/
DHCP server (public ip , NAT device)
/|\
|
\|/
private ip (estara softphone)
in the terminal of ser iam gettign this
-----------------------------------------------------
[root@server sbin]# ser
Listening on
127.0.0.1 [127.0.0.1]:5060
<public ip>[public ip]:5060
Aliases: server.pol.net.in:5060 localhost:5060
localhost.localdomain:5060
[root@server sbin]# stateless - initializing
Maxfwd module- initializing
textops - initializing
0(0) INFO: udp_init: SO_RCVBUF is initially 65535
0(0) INFO: udp_init: SO_RCVBUF is finally 131070
0(0) INFO: udp_init: SO_RCVBUF is initially 65535
0(0) INFO: udp_init: SO_RCVBUF is finally 131070
9(0) INFO: fifo process starting: 17642
9(17642) SER: open_uac_fifo: fifo server up at
/tmp/ser_fifo...
5(17638) parse_nameaddr(): No < found
5(17638) parse_rr(): Error while parsing name-addr
5(17638) find_first_route(): Error while parsing
Route HF
8(17641) parse_nameaddr(): No < found
8(17641) parse_rr(): Error while parsing name-addr
8(17641) find_first_route(): Error while parsing
Route HF
5(17638) ERROR: extract_body: message body has lenght
zero
5(17638) ERROR: force_rtp_proxy: can't extract body
from the message
5(17638) ERROR: on_reply processing failed
-----------------------------------------------------
here iam using the rtpproxy of version 1.4 2003/08/05
./rtpproxy -f
in the terminal of rtpproxy iam getting this
-----------------------------------------------------
[root@server rtpproxy]# ./rtpproxy -f
rtpproxy: new session on a port 35000
rtpproxy: lookup on a port 35000
rtpproxy: addr1 filled in: 202.65.128.24
rtpproxy: addr2 filled in: 202.65.148.252
rtpproxy: stats: 179 in from addr1, 3 in from addr2,
180 relayed
rtpproxy: session on port 35000 is cleaned up
------------------------------------------------------
the result is i could able to see that both mic and
speaker are working and iam listening what ever public
ip softphone is speaking in private ip softphone.
but in public ip softphone i have seen that only
mic is working not the speakers i.e i could not
able to listen what ever private ip softphone is
speaking
i observed that one malformed sip packet is genrating
thorugh the ser in tethereal
so my ethereal report is
****************************************************
Frame 3 (327 bytes on wire, 327 bytes captured)
Arrival Time: May 23, 2004 20:18:03.259293000
Time delta from previous packet: 2.401569000
seconds
Time relative to first packet: 2.402778000 seconds
Frame Number: 3
Packet Length: 327 bytes
Capture Length: 327 bytes
Ethernet II, Src: 00:e0:2b:90:1f:00, Dst:
00:e0:18:ed:04:61
Destination: 00:e0:18:ed:04:61 (Asustek__ed:04:61)
Source: 00:e0:2b:90:1f:00 (Extreme__90:1f:00)
Type: IP (0x0800)
Internet Protocol, Src Addr: 202.*.*.252 (dhcp i.e nat
server) (202.*.*.252), Dst Addr: 202. *.*.19
(202.*.*.19)
Version: 4
Header length: 20 bytes
Differentiated Services Field: 0x00 (DSCP 0x00:
Default; ECN: 0x00)
0000 00.. = Differentiated Services Codepoint:
Default (0x00)
.... ..0. = ECN-Capable Transport (ECT): 0
.... ...0 = ECN-CE: 0
Total Length: 313
Identification: 0xf5f8
Flags: 0x00
.0.. = Don't fragment: Not set
..0. = More fragments: Not set
Fragment offset: 0
Time to live: 125
Protocol: UDP (0x11)
Header checksum: 0x9d28 (correct)
Source: 202.*.*.252 (202.*.*.252)
Destination: 202.*.*.19 (202.*.*.19)
User Datagram Protocol, Src Port: 62812 (62812), Dst
Port: 5060 (5060)
Source port: 62812 (62812)
Destination port: 5060 (5060)
Length: 293
Checksum: 0x8112 (correct)
Session Initiation Protocol
Request line: REGISTER sip:202.*.*.19 SIP/2.0
Message Header
Via: SIP/2.0/UDP 192.168.1.18:5060
From: sip:203@202.*.*.19
To: sip:203@202.*.*.19
Contact: sip:203@192.168.1.18:5060
Call-ID:
e166bf60-acf2-11d8-aafe-00e01846e257(a)192.168.1.18
CSeq: 32320301 REGISTER
Content-Length: 0
Expires: 3600
Frame 4 (629 bytes on wire, 629 bytes captured)
Arrival Time: May 23, 2004 20:18:03.261431000
Time delta from previous packet: 0.002138000
seconds
Time relative to first packet: 2.404916000 seconds
Frame Number: 4
Packet Length: 629 bytes
Capture Length: 629 bytes
Ethernet II, Src: 00:e0:18:ed:04:61, Dst:
00:e0:2b:90:1f:00
Destination: 00:e0:2b:90:1f:00 (Extreme__90:1f:00)
Source: 00:e0:18:ed:04:61 (Asustek__ed:04:61)
Type: IP (0x0800)
Internet Protocol, Src Addr: 202.*.*.19 (202.*.*.19),
Dst Addr: 202.*.*.252 (202.*.*.252)
Version: 4
Header length: 20 bytes
Differentiated Services Field: 0x10 (DSCP 0x04:
Unknown DSCP; ECN: 0x00)
0001 00.. = Differentiated Services Codepoint:
Unknown (0x04)
.... ..0. = ECN-Capable Transport (ECT): 0
.... ...0 = ECN-CE: 0
Total Length: 615
Identification: 0x0000
Flags: 0x04
.1.. = Don't fragment: Set
..0. = More fragments: Not set
Fragment offset: 0
Time to live: 64
Protocol: UDP (0x11)
Header checksum: 0x8ee3 (correct)
Source: 202.*.*.19 (202.*.*.19)
Destination: 202.*.*.252 (202.*.*.252)
User Datagram Protocol, Src Port: 5060 (5060), Dst
Port: 62812 (62812)
Source port: 5060 (5060)
Destination port: 62812 (62812)
Length: 595
Checksum: 0x0d6c (correct)
Session Initiation Protocol
Status line: SIP/2.0 200 OK
Message Header
Via: SIP/2.0/UDP
192.168.1.18:5060;rport=62812;received=202.*.*.252
From: sip:203@202.*.*.19
To:
sip:203@202.65.128.19;tag=b27e1a1d33761e85846fc98f5f3a7e58.d036
Call-ID:
e166bf60-acf2-11d8-aafe-00e01846e257(a)192.168.1.18
CSeq: 32320301 REGISTER
Status line: SIP/2.0 200 OK
Message Header
Via: SIP/2.0/UDP
192.168.1.18:5060;rport=62812;received=202.*.*.252
From: sip:203@202.*.*.19
To:
sip:203@202.*.*.19;tag=b27e1a1d33761e85846fc98f5f3a7e58.d036
Call-ID:
e166bf60-acf2-11d8-aafe-00e01846e257(a)192.168.1.18
CSeq: 32320301 REGISTER
Contact:
<sip:203@202.*.*.252:62812>;q=0.00;expires=3600
Server: Sip EXpress router (0.8.12-tcp_nonb
(i386/linux))
Content-Length: 0
Warning: 392 202.*.*.19:5060 "Noisy feedback
tells: pid=17639 req_src_ip=202.*.*.252 req_src_p
ort=62812 in_uri=sip:202.*.*.19
out_uri=sip:202.65.128.19 via_cnt==1"
Frame 5 (46 bytes on wire, 46 bytes captured)
Arrival Time: May 23, 2004 20:18:18.476274000
Time delta from previous packet: 15.214843000
seconds
Time relative to first packet: 17.619759000
seconds
Frame Number: 5
Packet Length: 46 bytes
Capture Length: 46 bytes
Ethernet II, Src: 00:e0:18:ed:04:61, Dst:
00:e0:2b:90:1f:00
Destination: 00:e0:2b:90:1f:00 (Extreme__90:1f:00)
Source: 00:e0:18:ed:04:61 (Asustek__ed:04:61)
Type: IP (0x0800)
Internet Protocol, Src Addr: 202.*.*.19 (202.*.*.19),
Dst Addr: 202.*.*.252 (202.*.*.252)
Version: 4
Header length: 20 bytes
Differentiated Services Field: 0x10 (DSCP 0x04:
Unknown DSCP; ECN: 0x00)
0001 00.. = Differentiated Services Codepoint:
Unknown (0x04)
.... ..0. = ECN-Capable Transport (ECT): 0
Differentiated Services Field: 0x10 (DSCP 0x04:
Unknown DSCP; ECN: 0x00)
0001 00.. = Differentiated Services Codepoint:
Unknown (0x04)
.... ..0. = ECN-Capable Transport (ECT): 0
.... ...0 = ECN-CE: 0
Total Length: 32
Identification: 0x0000
Flags: 0x04
.1.. = Don't fragment: Set
..0. = More fragments: Not set
Fragment offset: 0
Time to live: 64
Protocol: UDP (0x11)
Header checksum: 0x912a (correct)
Source: 202.*.*.19 (202.*.*.19)
Destination: 202.*.*.252 (202.*.*.252)
User Datagram Protocol, Src Port: 5060 (5060), Dst
Port: 62812 (62812)
Source port: 5060 (5060)
Destination port: 62812 (62812)
Length: 12
Checksum: 0x4d22 (correct)
[Malformed Packet: SIP]
*********************************************************
i kept * inorder to hide the public ip please pardon
me for that
ser.cfg is of klaus which he kept in the we last
febaraury with some light modifications confined to my
problem
my ser.cfg is
******************************************************
#
# $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=yes # (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"
alias=server.pol.net.in
#------------------ 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"
loadmodule "/usr/local/lib/ser/modules/textops.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"
# load the voicemail module
#loadmodule "/usr/local/lib/ser/modules/vm.so"
# load the enum module
#loadmodule "/usr/local/lib/ser/modules/enum.so"
# load the group module, to verify if a user forwards
to voicemail
#loadmodule "/usr/local/lib/ser/modules/group.so"
# load the nathelper module
loadmodule "/usr/local/lib/ser/modules/nathelper.so"
# ----------------- setting module-specific parameters
---------------
# -- registrar parameter
# special NAT flag indicates that a registered client
is behind NAT
modparam("registrar", "nat_flag", 6)
# -- usrloc params --
#modparam("usrloc", "db_mode", 0)
# Uncomment this if you want to use SQL database
# for persistent storage and comment the previous line
#/
#odparam("usrloc", "db_mode", 0)
#modparam("usrloc", "db_url",
"mysql://ser:XXXXXXX@localhost/ser")
# -- 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")
#modparam("auth_db", "db_url",
"mysql://ser:XXXXXXX@localhost/ser")
# -- rr params --
# add value to ;lr param to make some broken UAs happy
modparam("rr", "enable_full_lr", 1)
# -- voicemail params --
#modparam("voicemail",
"db_url","mysql://ser:XXXXXXX@localhost/ser")
# -- voicemail params --
#modparam("group",
"db_url","mysql://serro:XXXXXXXXX@localhost/ser")
# -- nathelper params --
modparam("nathelper", "natping_interval", 60)
modparam("nathelper", "ping_nated_only", 1)
modparam("tm", "fr_inv_timer", 30 )
#/modparam("register","nat_flag",6)
#modparam("tm", "fr_inv_timer", 8 )
# ------------------------- request routing logic
-------------------
# main routing logic
if (nat_uac_test("2")) {
force_rport();
fix_nated_contact();
if (method=="INVITE")
{
fix_nated_sdp("1");
}
append_hf("P-hint: fixed NAT contact
for request\r\n");
setflag(5);
};
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;
};
if (loose_route()) {
log(1, "loose_route processing\n");
t_relay();
break;
};
if (uri==myself) {
if (method=="REGISTER")
{
if (isflagset(5)) {
setflag(6);
...skipping 29 lines
if (method=="INVITE")
{
force_rtp_proxy();
append_hf("P-hint: request
forced to rtp proxy\r\n");
setflag(7);
};
};
if (!t_relay()) {
sl_reply_error();
};
}
onreply_route[1] {
if (isflagset(6)) {
fix_nated_contact();
append_hf("P-hint: fixed NAT contact
for response\r\n");
}
if ( (status=~"200" || status=~"183") ) {
if ( isflagset(7) ) {
force_rtp_proxy();
append_hf("P-hint: response
forced to rtp proxy\r\n");
};
};
}
route[4]{
# non-Voip -- just send "off-line"
if (!(method == "INVITE" || method == "ACK" ||
method == "CANCEL" || method == "REFER" || method == "
BYE")) {
log(1, "no
invite,ack,cancel,refer->return 404\n");
sl_send_reply("404", "Not Found");
break;
};
# not voicemail subscriber and no
echo/conference call
if ( isflagset(4)) {
log(1, "flag(4) active\n");
};
if (uri =~ "conference") {
log(1, "conference call\n");
};
if (uri =~ "echo") {
log(1, "echo call\n");
};
if ( !( isflagset(4) || (uri =~ "conference")
|| (uri =~ "echo") ) ) {
log(1, "no voicemail
subscriber->return 404");
sl_send_reply("404", "Not Found and no
voicemail turned on");
break;
};
if ( isflagset(5) ) {
log(1, "caller is
NATed->record_route\n");
record_route();
log(1, " -->setting up reply
processing ->onreply_route[1]");
t_on_reply("1");
if (method=="INVITE") {
log(1, " INVITE
request-->force_rtp_proxy");
force_rtp_proxy();
};
};
}
******************************************************
my requirement is private to public call establishment
so please kindly guide me
with regards
rama kanth
__________________________________
Do you Yahoo!?
Friends. Fun. Try the all-new Yahoo! Messenger.
http://messenger.yahoo.com/
I tried to use "/usr/sbin/ser_mysql.sh" to create SER database in MySQL.
I typed the password of MySQL and entered the realm
But the result showed that
/usr/sbin/ser_mysql.sh: line 1: gen_ha1: command not found
HA1 calculation failed
I've tried to type config variable CMD under command line to see whether I can enter MySQL or not.
Yes! The CMD works fine.
Then I have no idea about the gen_ha1.
Please give me some suggestions.
Thanks.
My config vars are as follows,
DBNAME=ser
DBHOST=mymachine
USERNAME=ser
DEFAULT_PW=heslo
ROUSER=serro
RO_PW=47serro11
SQL_USER="root"
CMD="mysql -u$SQL_USER -h $DBHOST "
DUMP_CMD="mysqldump -h $DBHOST -u$SQL_USER -c -t "
BACKUP_CMD="mysqldump -h $DBHOST -u$SQL_USER -c "
TABLE_TYPE="TYPE=MyISAM"
# user name column
USERCOL="username"
GENHA1='gen_ha1'
> Hi,
>
> Please help! I am trying to forward calls to PSTN gateway. But I run the
> ser code below, the call went through for the PSTN gateway but I can see
> multiple request of ACK. Anyone know what is happening ...thanks.!! Please
> HELP.
>
> <<ser.txt>> <<error.txt>>
> Regards,
> Shirley
Hello,
i have two questions.
1. There is no packages since version ser-version-12. Why?
2. In oder to support mysql module, what mysql packets must be installed?
standard or more? Please see http://dev.mysql.com/downloads/mysql/4.0.html.
Regards
Yongcheng
__________________________________
Do you Yahoo!?
Friends. Fun. Try the all-new Yahoo! Messenger.
http://messenger.yahoo.com/
I am running ser 0.8.12 (on RedHat 9) and have it set up to log all invite
and bye messages, so that I can use the accounting feature in SerWeb. It's
logging fine.
My problem is that if there are multiple invites and only one bye during a
session, I get multiple entries in SerWeb with the same sip_callid. I
noticed that this happens when the hold feature is used with the XTen soft
phone.
Is there any way I can avoid logging these subsequent INVITE messages or
stop from displaying them in the call log on SerWeb?
My accounting routine:
modparam("acc", "log_level",1)
modparam("acc", "db_flag", 1)
if ((method=="INVITE") || (method=="BYE")) {
setflag (1);
};
Serweb $q call to MySQL (4.0.18) db:
$q="select t1.to_uri, t1.from_uri, t1.sip_callid, t1.time, ".
"t1.fromtag as invft, t2.fromtag as byeft, t2.totag as byett, ".
"sec_to_time(unix_timestamp(t2.time)-unix_timestamp(t1.time)) ".
"as length ".
"from ".$config->table_accounting." t1, ".
$config->table_accounting. " t2 ".
"where t1.domain='".$config->realm."' and ".
"t1.sip_callid=t2.sip_callid and ".
"t1.sip_method='INVITE' and t2.sip_method='BYE'".
"order by t1.time desc";
Thanks
-Jon B