Hello,
I have downloaded ser from cvs (unstable) to test AVPops Module and I see
that I have many errors (tested with eyepmedia and xlite).
Nov 12 15:20:16 voip ser[24130]: ERROR: CSeq EoL expected
Nov 12 15:20:16 voip ser[24130]: ERROR: parse_cseq: bad cseq
Nov 12 15:20:16 voip ser[24130]: ERROR: get_hdr_field: bad cseq
Nov 12 15:20:16 voip ser[24130]: ERROR:maxfwd:is_maxfwd_present : parsing
MAX_FORWARD header failed!
Nov 12 15:20:16 voip ser[24130]: ERROR: CSeq EoL expected
Nov 12 15:20:16 voip ser[24130]: ERROR: parse_cseq: bad cseq
Nov 12 15:20:16 voip ser[24130]: ERROR: get_hdr_field: bad cseq
Nov 12 15:20:16 voip ser[24130]: find_first_route(): Error while parsing
headers
Nov 12 15:20:16 voip ser[24130]: ERROR: CSeq EoL expected
Nov 12 15:20:16 voip ser[24130]: ERROR: parse_cseq: bad cseq
Nov 12 15:20:16 voip ser[24130]: ERROR: get_hdr_field: bad cseq
Nov 12 15:20:16 voip ser[24130]: append_hf(): Error while parsing message
Thanks
Laurent
Hello everyone. I downloaded the latest version (0.8.14) of SER and
installed it on my redhat linux server. I've not set up a sip server before
so I'm new to this.
1.) Would you please point me in the direction to get started in configuring
the SER server? I would like to test it out w/ an ip phone and windows
messenger. I've been using some of the documentation that were available at
the same ftp site.
2.) I noticed that it is preferable to install and use mysql. I already have
mysql installed on my server, but the file "ser-mysql" could not be found in
the latest directory on the ftp site. Where can I find that file to set up
mysql for SER?
3.) What ports should I have open for SER to function if I'm behind
firewall?
4.) Lastly, I would also like to set up the sms gateway module. How can I
have access to that module?
Thank you for your help.
Sher
> Ser doesn't send any media. You mean rtpporxy probably.
Yes, you are right. Sorry for not being clear enough.
> Some network dumps and your ser.cfg might help.
ser.cfg is at the botton of the message. The scenario is as follows:
The sip server is listening on 194.179.25.52. The user
chano(a)wmserver.hi.inet on the machine sayuritra (private address:
192.168.1.34, public address: 81.35.36.166) calls to the user
raquel(a)wmserver.hi.inet on hobbes (private address: 192.168.1.34, public
addess: 80.32.97.245). The messages captured in the sip server are the
following (irrelevant messages are omitted):
1) INVITE from sayuritra to server (81.35.36.166:20820 ->
194.179.25.52:5060):
INVITE sip:raquel@wmserver.hi.inet SIP/2.0..Via: SIP/2.0/UDP
81.35.36.166:20818..From: "chano"
<sip:chano@wmserver.hi.inet>;tag=a350c270-a7ff-4149-8e05-8af9f79e9e92..To:
<sip:raquel@wmserver.hi.inet>..Call-ID:
5e5ba0ab-2321-4e87-b038-5a99fc37acdd@81.35.36.166..CSeq: 1
INVITE..Contact: <sip:81.35.36.166:20818>..User-Agent: Windows
RTC/1.0..Content-Type: application/sdp..Content-Length:
531....v=0..o=sayuritra 0 0 IN IP4 81.35.36.166..s=session..c=IN IP4
81.35.36.166..b=CT:1000..t=0 0..m=audio 20857 RTP/AVP 97 111 112 6 0 8 4
5 3 101..a=rtpmap:97 red/8000..a=rtpmap:111 SIREN/16000..a=fmtp:111
bitrate=16000..a=rtpmap:112 G7221/16000..a=fmtp:112
bitrate=24000..a=rtpmap:6 DVI4/16000..a=rtpmap:0 PCMU/8000..a=rtpmap:8
PCMA/8000..a=rtpmap:4 G723/8000..a=rtpmap:5 DVI4/8000..a=rtpmap:3
GSM/8000..a=rtpmap:101 telephone-event/8000..a=fmtp:101 0-16..m=video
61674 RTP/AVP 34 31..a=rtpmap:34 H263/90000..a=rtpmap:31 H261/90000..
(so sayuritra is waiting for incoming video from server on port 61674
and audio on 20857)
2) INVITE from server to hobbes (194.179.25.52:5060 -> 80.32.97.245:12595):
INVITE sip:80.32.97.245:12595 SIP/2.0..Max-Forwards: 10..Record-
Route: <sip:194.179.25.52;ftag=a350c270-a7ff-4149-8e05-
8af9f79e9e92;lr=on>..Via: SIP/2.0/UDP
194.179.25.52;branch=z9hG4bKdbfe.e72b2f84.0..Via: SIP/2.0/UDP
81.35.36.166:20818..From: "chano"
<sip:chano@wmserver.hi.inet>;tag=a350c270-a7ff-4149-8e05-8af9f79e9e92..To:
<sip:raquel@wmserver.hi.inet>..Call-ID: 5e5ba0ab-2321-4e87-b038-
5a99fc37acdd@81.35.36.166..CSeq: 1 INVITE..Contact:
<sip:81.35.36.166:20818>..User-Agent: Windows RTC/1.0..Content-Type:
application/sdp..Content-Length: 550..P-hint: usrloc
applied....v=0..o=sayuritra 0 0 IN IP4 81.35.36.166..s=session..c=IN IP4
194.179.25.52..b=CT:1000..t=0 0..m=audio 35106 RTP/AVP 9 7 111 112 6 0 8
4 5 3 101..a=rtpmap:97 red/8000..a=rtpmap:111 SIREN/16000..a=fmtp:111
bitrate=16000..a=rtpmap:112 G7221/16000..a=fmtp:112
bitrate=24000..a=rtpmap:6 DVI4/16000..a=rtpmap:0 PCMU/8000..a=rtpmap:8
PCMA/8000..a=rtpmap:4 G723/8000..a=rtpmap:5 DVI4/8000..a=rtpmap:3
GSM/8000..a=rtpmap:101 telephone-event/8000..a=fmtp:101 0-16..m=video
61674 RTP/AVP 34 31..a=rtpmap:34 H263/90000..a=rtpmap:31 H261/90000..a=n
ortpproxy:yes..
(so server is waiting for incoming video from hobbes on port 35106 and
audio on 20857)
3) 200 OK from hobbes to server (80.32.97.245:12595 -> 194.179.25.52:5060):
SIP/2.0 200 OK..Via: SIP/2.0/UDP
194.179.25.52;branch=z9hG4bKdbfe.e72b2f84.0..Via: SIP/2.0/UDP
81.35.36.166:20818..From: "chano"
<sip:chano@wmserver.hi.inet>;tag=a350c270-a7ff-4149-8e05-8af9f79e9e92..To:
<sip:raquel@wmserver.hi.inet>;tag=54e09747-9530-456b-b0bf-e98bc4c72d3c..Call-ID:
5e5ba0ab-2321-4e87-b038-5a99fc37acdd@81.35.36.166..CSeq: 1
INVITE..Record-Route:
<sip:194.179.25.52;ftag=a350c270-a7ff-4149-8e05-8af9f79e9e92;lr=on>..Contact:
<sip:192.168.1.34:9843>..User-Agent: Windows RTC/1.0..Content-Type:
application/sdp..Content-Length: 528....v=0..o=hobbes 0 0 IN IP4
192.168.1.34..s=session..c=IN IP4 192.168.1.34..b=CT:1000..t=0
0..m=audio 47976 RTP/AVP 97 111 112 6 0 8 4 5 3 101..a=rtpmap:97
red/8000..a=rtpmap:111 SIREN/16000..a=fmtp:111
bitrate=16000..a=rtpmap:112 G7221/16000..a=fmtp:112
bitrate=24000..a=rtpmap:6 DVI4/16000..a=rtpmap:0 PCMU/8000..a=rtpmap:8
PCMA/8000..a=rtpmap:4 G723/8000..a=rtpmap:5 DVI4/8000..a=rtpmap:3
GSM/8000..a=rtpmap:101 telephone-event/8000..a=fmtp:101 0-16..m=video
25608 RTP/AVP 34 31..a=rtpmap:34 H263/90000..a=rtpmap:31 H261/90000..
(so hobbes is waiting for incoming video from server on port 25608 and
audio on 47976)
4) 200 OK from server to sayuritra (194.179.25.52:5060 ->
81.35.36.166:20818):
SIP/2.0 200 OK..Via: SIP/2.0/UDP 81.35.36.166:20818..From: "chano"
<sip:chano@wmserver.hi.inet>;tag=a350c270-a7ff-4149-8e05-8af9f79e9e92..T
o:
<sip:raquel@wmserver.hi.inet>;tag=54e09747-9530-456b-b0bf-e98bc4c72d3c..Call-ID:
5e5ba0ab-2321-4e87-b038-5a99fc37acdd@81.35.36.166..CSeq : 1
INVITE..Record-Route:
<sip:194.179.25.52;ftag=a350c270-a7ff-4149-8e05-8af9f79e9e92;lr=on>..Contact:
<sip:80.32.97.245:12595>..User-Agent: Windows RTC/1.0..Content-Type:
application/sdp..Content-Length: 547....v=0..o=hobbes 0 0 IN IP4
192.168.1.34..s=session..c=IN IP4 194.179.25.52..b=CT:1000..t=0
0..m=audio 35108 RTP/AVP 97 111 112 6 0 8 4 5 3 101..a=rtpmap:97
red/8000..a=rtpmap:111 SIREN/16000..a=fmtp:111
bitrate=16000..a=rtpmap:112 G7221/16000..a=fmtp:112
bitrate=24000..a=rtpmap:6 DVI4/16000..a=rtpmap:0 PCMU/8000..a=rtpmap:8
PCMA/8000..a=rtpmap:4 G723/8000..a=rtpmap:5 DVI4/8000..a=rtpmap:3
GSM/8000..a=rtpmap:101 telephone-event/8000..a=fmtp:101 0-16..m=video
25608 RTP/AVP 34 31..a=rtpmap:34 H263/90000..a=rtpmap:31
H261/90000..a=nortpproxy:yes..
(so server is waiting for incoming video from sayuritra on port 25608
and audio on 35108)
After the connection has stablished, if we put a sniffer in sayuritra,
we can see that there are ICMP 'destination unreachable' packets
directed from server to sayuritra on port 25608, that is, the RTP proxy
is directing the video packets to a closed port on sayuritra. Oddly,
that port is the one where hobbes is listening on, that is, it seems
that the RTP proxy is sending packets to the correct port in the wrong
machine or, the other way other round, to the right machine in the
correct port.
Any ideas?.
Thank you very much,
Luciano Bajo
Ser.cfg:
# ----------- 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
fork=no
log_stderror=yes
*/
# machine has two network interfaces, listen only on the public one:
listen=194.179.25.52
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"
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"
# !! Nathelper
loadmodule "/usr/local/lib/ser/modules/nathelper.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)
# !! Nathelper
modparam("registrar", "nat_flag", 6)
modparam("nathelper", "natping_interval", 30) # Ping interval 30 s
modparam("nathelper", "ping_nated_only", 1) # Ping only clients behind NAT
modparam("nathelper","rtpproxy_sock","/var/run/rtpproxy.sock")
# ------------------------- 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;
};
# !! Nathelper
# Special handling for NATed clients; first, NAT test is
# executed: it looks for via!=received and RFC1918 addresses
# in Contact (may fail if line-folding is used); also,
# the received test should, if completed, should check all
# vias for rpesence of received
if (nat_uac_test("3")) {
# Allow RR-ed requests, as these may indicate that
# a NAT-enabled proxy takes care of it; unless it is
# a REGISTER
if (method == "REGISTER" || ! search("^Record-Route:")) {
log("LOG: Someone trying to register from private IP, rewriting\n");
# This will work only for user agents that support symmetric
# communication. We tested quite many of them and majority is
# smart enough to be symmetric. In some phones it takes a
configuration
# option. With Cisco 7960, it is called NAT_Enable=Yes, with
kphone it is
# called "symmetric media" and "symmetric signalling".
fix_nated_contact(); # Rewrite contact with source IP of signalling
if (method == "INVITE") {
fix_nated_sdp("1"); # Add direction=active to SDP
};
force_rport(); # Add rport parameter to topmost Via
setflag(6); # Mark as NATed
};
};
# 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();
# 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");
route(1);
break;
};
if (!uri==myself) {
# mark routing logic in request
#append_hf("P-hint: outbound\r\n");
route(1);
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("iptel.org", "subscriber")) {
# www_challenge("iptel.org", "0");
# break;
# };
save("location");
break;
};
lookup("aliases");
if (!uri==myself) {
#ppend_hf("P-hint: outbound alias\r\n");
route(1);
break;
};
# native SIP destinations are handled using our USRLOC DB
if (!lookup("location")) {
sl_send_reply("404", "Not Found");
break;
};
};
#append_hf("P-hint: usrloc applied\r\n");
route(1);
}
route[1]
{
# !! Nathelper
if (uri=~"[@:](192\.168\.|172\.(1[6-9]|2[0-9]|3[0-1])\.)" &&
!search("^Route:")){
sl_send_reply("479", "We don't forward to private IP addresses");
break;
};
# if client or server know to be behind a NAT, enable relay
if (isflagset(6)) {
force_rtp_proxy();
};
# NAT processing of replies; apply to all transactions (for example,
# re-INVITEs from public to private UA are hard to identify as
# NATed at the moment of request processing); look at replies
t_on_reply("1");
# send it out now; use stateful forwarding as it works reliably
# even for UDP2TCP
if (!t_relay()) {
sl_reply_error();
};
}
# !! Nathelper
onreply_route[1] {
# NATed transaction ?
if (isflagset(6) && status =~ "(183)|2[0-9][0-9]") {
fix_nated_contact();
force_rtp_proxy();
# otherwise, is it a transaction behind a NAT and we did not
# know at time of request processing ? (RFC1918 contacts)
} else if (nat_uac_test("1")) {
fix_nated_contact();
};
}
Hello Andrei.
Thanks for your reply. I'm using Mediaproxy with the mediaproxy
module from SER. I'm use client_nat_test to modify the rport.
if (client_nat_test("1")) {
log(1, "NAT: Requerimiento de IP privada --> fixed contact
(en rutina principal)\n");
setflag(5);
force_rport();
fix_contact();
append_hf("P-hint: fixed NAT contact for request\r\n");
};
Here, i'm attaching the complete debug from a call with a CANCEL request.
(cancel_problem.txt)
Can this problem be solved? or is more related with the endpoint?
Thanks in advance.
Best Regards
Ricardo Martinez Ogalde
-----Mensaje original-----
De: Andrei Pelinescu-Onciul
[mailto:pelinescu-onciul@fokus.fraunhofer.de]
Enviado el: Viernes, 12 de Noviembre de 2004 5:25
Para: Ricardo Martinez
CC: 'serusers(a)lists.iptel.org'
Asunto: Re: [Serusers] "200 - Cancelling" Message Problem
On Nov 11, 2004 at 12:52, Ricardo Martinez <rmartinez(a)redvoiss.net> wrote:
> Hello List.
> I'm still stuck with this problem. I really don't know if it is a
> configuration problem or maybe a problem with SER, i was hopping that
> someone could help me. I have a NAT'd client, when this client make a
call,
> and before the called party answer the call the call is canceled, I see a
> "200 - Cancelling" message coming from SER to my NAT'd client. All the
> previus messages goes to the correct port informed in the rport, but this
> 200-Cancelling message goes to port 5060, so the message didn't reach the
> endpooint.
All the replies to a request are supposed to go to the rport.
CANCEL is a different request. CANCEL will go to its request uri
, in your case sip:2408196@sipproxy.mydomain.com.
>It this a problem with the configuration or a problem with SER?.
> Here is SIp debug for the final CANCEL message.
A nat-config problem probably. Do you use nathelper? Do you use
fix_nated_contact() for REGISTERs comming from natted UAs?
Andrei
Hello!
I'm trying to make my 1st SIP-based system working. I use SER-0.8.14
on Linux Sarge. I have usually UAs behind NAT firewalls.
I found a case, when UAs are working very oddly, I can't call from one
of them, after sime time I can't reach one of them from outside, after
some time when I call one UA, the 2nd is answering (and the same time
when I call 2nd UA, the 2nd is answering).
I have 2 UAs [Grandstream BT100 & X-Lite v2.0] behind a linux NAT
firewall. Both UAs use the same STUN and SER server.
I did some tcpdumps and I found an interesting thing:
Internet Protocol, Src Addr: <FWPUBLICIP> (<FWPUBLICIP>), Dst Addr: <SERIP> (<SERIP>)
User Datagram Protocol, Src Port: 1024 (1024), Dst Port: 5060 (5060)
Session Initiation Protocol
Request-Line: REGISTER sip:<MYDOMAIN> SIP/2.0
Method: REGISTER
Resent Packet: True
Suspected resend of frame: 31
Message Header
Via: SIP/2.0/UDP <FWPUBLICIP>;branch=z9hG4bK0dbeeb499dbd416e
From: "M70" <sip:70@<MYDOMAIN>;user=phone>;tag=d4de3110a63ddb36
SIP Display info: "M70"
SIP from address: sip:70@<MYDOMAIN>
SIP tag: d4de3110a63ddb36
To: <sip:70@<MYDOMAIN>;user=phone>
SIP to address: sip:70@<MYDOMAIN>
Contact: *
Call-ID: 6ead5eb5744d407d@<IP PHONE LAN IP>
CSeq: 100 REGISTER
Expires: 0
User-Agent: Grandstream BT100 1.0.5.16
Max-Forwards: 70
Allow: INVITE,ACK,CANCEL,BYE,NOTIFY,REFER,OPTIONS,INFO,SUBSCRIBE
Content-Length: 0
Internet Protocol, Src Addr: <SERIP> (<SERIP>), Dst Addr: <FWPUBLICIP>77.150.18 (<FWPUBLICIP>)
User Datagram Protocol, Src Port: 5060 (5060), Dst Port: 5060 (5060)
Session Initiation Protocol
Status-Line: SIP/2.0 200 OK
Status-Code: 200
Resent Packet: False
Message Header
Via: SIP/2.0/UDP <FWPUBLICIP>;branch=z9hG4bK0dbeeb499dbd416e
From: "M70" <sip:70@<MYDOMAIN>;user=phone>;tag=d4de3110a63ddb36
SIP Display info: "M70"
SIP from address: sip:70@<MYDOMAIN>
SIP tag: d4de3110a63ddb36
To: <sip:70@<MYDOMAIN>;user=phone>;tag=9ed85684aa54afbffef0a2d40b9935f4.71f6
SIP to address: sip:70@<MYDOMAIN>
SIP tag: 9ed85684aa54afbffef0a2d40b9935f4.71f6
Call-ID: 6ead5eb5744d407d@<IP PHONE IP>
CSeq: 100 REGISTER
Server: Sip EXpress router (0.8.14 (i386/linux))
Content-Length: 0
Warning: 392 <SERIP>:5060 "Noisy feedback tells: pid=25451 req_src_ip=<FWPUBLICIP> req_src_port=1024 in_uri=sip:<MYDOMAIN> out_uri=sip:<MYDOMAIN> via_cnt==1"
What is interesting is that REGISTER message went out from port 1024
but 200 OK came to port 5060. Is this OK? I think here is some problem
and this can make the phones working oddly.
SER is configured with nathelper+rtpproxy.
...
if (nat_uac_test("3")) {
# Allow RR-ed requests, as these may indicate that
# a NAT-enabled proxy takes care of it; unless it is
# a REGISTER
if (method == "REGISTER" || ! search("^Record-Route:")) {
log("LOG: Someone trying to register from private IP, rewriting\n");
# This will work only for user agents that support symmetric
# communication. We tested quite many of them and majority is
# smart enough to be symmetric. In some phones it takes a configuration
# option. With Cisco 7960, it is called NAT_Enable=Yes, with kphone it is
# called "symmetric media" and "symmetric signalling".
fix_nated_contact(); # Rewrite contact with source IP of signalling
if (method == "INVITE") {
fix_nated_sdp("1"); # Add direction=active to SDP
};
force_rport(); # Add rport parameter to topmost Via
setflag(6); # Mark as NATed
};
};
...
It is basically the sample nathelper configuration.
Could anybody give me a hint? If it is a well-known situation, please
point me to some other resources, I'm really a new-comer in SIP/SER.
Thank you in advance!
Kind regard,
Tamas J.
Hi, i have running mediaproxy 1.0 with Python 2.3 (compiled from source) in a Linux RedHat 8.0 kernel 2.4.18-14.
After a few weeks running i see high memory utilization from mediaproxy.py process. I am loggin Vm usage to see if exist a leak.
* Captured from /proc/PID/Status every 15 minutes.
* The increment is done after each call processed.
* I try to keep the process running several days to see if python free mem but never occur, always increment.
...
VmSize: 7964 kB
VmSize: 8780 kB
VmSize: 8780 kB
VmSize: 10104 kB
VmSize: 11512 kB
VmSize: 11792 kB
VmSize: 11804 kB
VmSize: 11820 kB
VmSize: 11824 kB
VmSize: 11828 kB
VmSize: 12340 kB
VmSize: 13580 kB
VmSize: 14216 kB
VmSize: 14216 kB
VmSize: 14216 kB
VmSize: 14216 kB
VmSize: 14728 kB
VmSize: 14812 kB
VmSize: 14828 kB
VmSize: 14852 kB
VmSize: 14856 kB
VmSize: 14856 kB
VmSize: 15508 kB
VmSize: 16036 kB
...
Thanks
Ezequiel
Hello List.
I'm still stuck with this problem. I really don't know if it is a
configuration problem or maybe a problem with SER, i was hopping that
someone could help me. I have a NAT'd client, when this client make a call,
and before the called party answer the call the call is canceled, I see a
"200 - Cancelling" message coming from SER to my NAT'd client. All the
previus messages goes to the correct port informed in the rport, but this
200-Cancelling message goes to port 5060, so the message didn't reach the
endpooint. It this a problem with the configuration or a problem with SER?.
Here is SIp debug for the final CANCEL message.
U xx.xx.148.244:64435 -> xx.xx.154.35:5060
CANCEL sip:2408196@sipproxy.mydomain.com SIP/2.0
Via: SIP/2.0/UDP 192.168.0.191:5060;branch=z9hG4bK2542303ca430
From: <sip:5555848110@sipproxy.mydomain.com>;tag=2542303ca4
To: <sip:2408196@sipproxy.mydomain.com>
Call-ID: 252eb142-ae30-30f0-803c-0002a400f1e9(a)192.168.0.191
CSeq: 30 CANCEL
Date: Thu, 16 Jun 2005 07:45:57 GMT
User-Agent: AddPac SIP Gateway
Content-Length: 0
Max-Forwards: 70
#
U xx.xx.154.35:5060 -> xx.xx.148.231:5060
CANCEL sip:7072408196@xx.xx.148.231:5060 SIP/2.0
Record-Route: <sip:2408196@xx.xx.154.35;ftag=2542303ca4;lr=on>
Via: SIP/2.0/UDP xx.xx.154.35;branch=z9hG4bKe6c7.e2501f15.0
Via: SIP/2.0/UDP
192.168.0.191:5060;received=xx.xx.148.244;branch=z9hG4bK2542303ca430
From: <sip:5555848110@sipproxy.mydomain.com>;tag=2542303ca4
To: <sip:2408196@sipproxy.mydomain.com>
Call-ID: 252eb142-ae30-30f0-803c-0002a400f1e9(a)192.168.0.191
CSeq: 30 CANCEL
Date: Thu, 16 Jun 2005 07:45:57 GMT
User-Agent: AddPac SIP Gateway
Content-Length: 0
Max-Forwards: 69
P-hint: H323-Side
#
U xx.xx.154.35:5060 -> xx.xx.148.244:5060
SIP/2.0 200 cancelling
Via: SIP/2.0/UDP
192.168.0.191:5060;branch=z9hG4bK2542303ca430;received=xx.xx.148.244
From: <sip:5555848110@sipproxy.mydomain.com>;tag=2542303ca4
To:
<sip:2408196@sipproxy.mydomain.com>;tag=8acf748d21b6bc66e44e951325ba3f1c-b28
c
Call-ID: 252eb142-ae30-30f0-803c-0002a400f1e9(a)192.168.0.191
CSeq: 30 CANCEL
Server: Sip EXpress router (0.8.14-3 (i386/linux))
Content-Length: 0
Warning: 392 xx.xx.154.35:5060 "Noisy feedback tells: pid=23757
req_src_ip=xx.xx.148.244 req_src_port=64435
in_uri=sip:2408196@sipproxy.mydomain.com
out_uri=sip:7072408196@xx.xx.148.231:5060 via_cnt==1"
This cause a endless CANCEL message flow coming from my endpoint.
Hope that someone can help me here
Thanks in advance
Best Regards
Ricardo Martinez
Hello,
We are trying to get SIP Express Router and RTP proxy working for NAT
traversal (as many of you, I think). We have tried all kind of
configuration files, versions, etc. but the best result we get is always
the same: the session is stablished, but the media are not. We have
followed, step by step, Allan's help (thank you, I am the guy that asked
for your ser.cfg) in his post on Nov 4th
(http://lists.iptel.org/pipermail/serusers/2004-November/012737.html),
but we are not able to get it working.
The problem seems to be that SER does not send the media to the ports
indicated by SDP, instead it sends them to wrong ports resulting in ICMP
'destination unreacheable' errors. As clients we are using two Windows
Messenger 4.7 in two different ADSL (NATed) lines connecting to SER in a
public Internet address. The linux box for SER is Red Hat 9.0 and file
versions are the same as indicated in Allan's post.
Any suggestions, ideas, ..., please? The deadline is really near and we
do not know what else to do.
Thanks in advance,
Luciano Bajo
Hi,
Ser is pretty new to me (about 3 weeks of reading about it and working with
it), so naturally I have some questions: (attached - the configuration file
I use)
I saw many examples of configuration files were both SL and TM modules are
loaded.
In such cases is SL loaded only for REGISTER requests?
How can I control which of SER actions are handled with TM and which are
handled with SL?
Is there a way of hooking SER answers to requests without TM?
As I understand from this mail archive - INVITE is a special case in SER and
even though the client doesn't retramit such requests, SER does. Is there a
way to avoid this retransmission? Is there a way to control the interval
time between one retransmission to another?
It seems that sometimes these retransmissions occure even after the ACK is
returned...
Another starnge this is that my clients are on the same domain as the one
SER is on and still record_route() seems to add many non usefull header
lines for such INVITE messages.
Is it a problem with my configuration file?
Thanks in advance,
Micky
_________________________________________________________________
Don't just search. Find. Check out the new MSN Search!
http://search.msn.com/
Hi, all
I use sjphone behind NAT which can register with sip.iptel.org successfully.
But fail to register with my own SER in public internet.
I already setup nathelper and rtpproxy, and both rtpproxy and SER running
properly. I don't know why register still fail.
My ser.cfg is as follows,
#
# $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)
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"
# NAT support
loadmodule "/usr/local/lib/ser/modules/nathelper.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)
# NAT support
modparam("registrar", "nat_flag", 6)
modparam("nathelper", "natping_interval", 10) # Ping interval 30 s
modparam("nathelper", "ping_nated_only", 1) # Ping only clients behind NAT
modparam("nathelper", "rtpproxy_sock", "/var/run/rtpproxy.sock") #rtp proxy
socket
# ------------------------- 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;
};
# 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;
};
#Added by YangTao
# attempt hand off to PSTN
if (uri=~"^sip:[0-9]*@127.0.0.1") {
prefix("5589712");
forward (202.157.148.229,5060);
};
#End by YangTao
# 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=~"myown.com") {
if (method=="REGISTER") {
# Uncomment this if you want to use digest authentication
if (!www_authorize("myown.com", "subscriber")) {
www_challenge("myown.com", "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();
};
}
}