Hi list,
Iam useing the SER of version: ser 0.8.12-1rc6
(i386/linux)
My aim is to place the calls on to the gateway
iam useing the ser.cfg as follows.
****************************************************
# ----------- global configuration parameters
debug=8 # debug level (cmd line: -dddddddddd)
fork=yes
log_stderror=yes # (cmd line: -E)
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/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"
# ----------------- setting module-specific parameters
# -- usrloc params --
modparam("usrloc", "db_mode", 0)
# -- 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 ( 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;
};
# 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") {
save("location");
break;
};
if (!uri=~"sip:9[1-9][0-9].*@.*")
{
if (method=="INVITE")
{
sl_send_reply("403", "Call
cannot be served here");
}
else if(method=="BYE")
{
forward(uri:host, uri:port);
}
else
{
forward(uri:host, uri:port);
};
break;
};
};
# forward to current uri now; use stateful
forwarding; that
# works reliably even if we forward from TCP
to UDP
rewritehostport("*.*.*.101:5060");
if (!t_relay()) {
sl_reply_error();
};
}
****************************************************
i have number like 214 which has been registerd with
the fxs device to our ser proxy . so when i dial
the numbers like 9198495305756 which will be pstn
terminated with the help of quintum gateway.
i observerd the request reaching to the quintum is
with the address/domain/ ip of client Ip not the
server
domain / ip while in the gateway we have allowed all
calls coming from the our ser domain
so by result of this when an invite is coming
with the client ip it could not able to acess the
pstn number for the first few seconds
we get the message like 183 processing the call but
after some time it gives the message like 486 busy and
call ends.
but when i allow the client ip also in my quintum
gateway the call is being sucessfull established
i think ser is doing the state less forwarding
this is main problem iam faceing.
help of people like you in this will be highly
appreciated
with regards
________________________________________________________________________
Yahoo! India Matrimony: Find your life partner online
Go to: http://yahoo.shaadi.com/india-matrimony
> > >try to include both dictionary.ser (from SER) and dictionary.sip
> > >(from radiusclient) on ICRADIUS dictionary
>
> > I did, but nothing new happened ...
>
> I forget to say, add them to /etc/radiusclient/dictionary,
> too. both ICRADIUS and radiusclient needs to point to the
> same dictionary file content!
Both of them have dictionary.sip and dictionary.ser
(/etc/radiusclient/dictionary and my ICRadius dictionary). But, you
know, ICRadius has its dictionary in a mysql database. Will it have
something to do with everything ?? But, both dictionaries are just the
same.
> > It just makes no sense ... Why would some attributes be
> > recognized and
> > some others not. It is not logical, as they are all (the
> > attributes)
> > taken from the same files (dictionary.sip and dictionary.ser).
>
> check if /etc/radiusclient/radiusclient.conf points
> to the correct dictionary you're using
Yes it does.
> > Is there any special configuration needed for the ser.cfg
> > or for the
> > radiusclient.conf ? The radius.conf file of my icradius has
> > little to touch ... Any ideas ??
>
> perhaps your SER is (like mine) pointing to
> /usr/local/etc/radiusclient/ and you're tweaking /etc/radiusclient/ ?
[root@radius]# ls -l /etc/radiusclient/dictionary
lrwxrwxrwx 1 root root /etc/radiusclient/dictionary ->
/usr/local/etc/radiusclient/dictionary
Is this what you meant ???
By the way ... I mak a call but did not see the called-station-Id nor
the calling-station-Id, any ideas ?? But the call could just be placed,
cause, 1st authentication takes place ... I mean, the User making the
call exists and so I get an access-accept from radius. Then ser places
de call, but I do not see the 2nd authentication taking place ... Does
this happen to you ??
> []s, !3runo
Lucas
---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.786 / Virus Database: 532 - Release Date: 29/10/2004
I'm out of office in the IETF meeting (Washington DC) and elsewhere and cannot read my emails
as frequently as I would wish.
If you have any urgent questions to iptelorg, call me or contact my
colleague, Dr. Sisalem, sisalem(a)iptel.org.
-Jiri
Hi All.
Is there a way to monitor rtpproxy?
Aside from the typical health checks on the process itself, is there a way to actually make sure
that rtpproxy is processing calls and not simply a hung process?
Regards,
Paul
__________________________________
Do you Yahoo!?
The all-new My Yahoo! - Get yours free!
http://my.yahoo.com
Hi,
can you tell me please how can I pass
login and password to squid using
nathelper ?
Thank You,
Andrea.
--
___________________________________________________________
Sign-up for Ads Free at Mail.comhttp://promo.mail.com/adsfreejump.htm
Hi SER's,
I want to set up a private SIP network over a VPN using SER but some of my
UAs are only able to operate in peer to peer mode (ie they cannot
register). My proposed network architecture is the following:
UA1=192.168.0.4
UA2=192.168.1.4
UA3=192.168.2.4
SER=192.168.0.5
UA1 & UA2 can register with SER but UA3 cannot.
I have already set this up and have successfully made calls between UA1
&UA2. How do I set up SER to make calls from either UA1 or UA2 to UA3, or
calls from UA3 to either UA1 or UA2?
Any help greatly appreciated!
thx
Mark
**********************************************************************
This email and any files transmitted with it are confidential and
intended solely for the use of the individual or entity to whom they
are addressed. If you have received this email in error please notify
postmaster(a)lakecommunications.com
This footnote also confirms that this email message has been
scanned for the presence of computer viruses.
www.lakecommunications.com
**********************************************************************
hello friends,
i was actuall trying for the ser+gateway
but i was missing some where .
my idea is that any number stat
it gives message as seesion progress with the
message type 183
the same is working in between the two sers
i.e one user agent registered to the one ser server
can be able to place call to another ser server user
agent
iam pasting my ser.cfg here please guide me where
am i going wrong.
# ----------- global configuration parameters
------------------------
debug=8 # debug level (cmd line:
-dddddddddd)
fork=yes
log_stderror=yes # (cmd line: -E)
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"
fifo_mode=438
# ------------------ 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"
loadmodule "/usr/local/lib/ser/modules/acc.so"
loadmodule "/usr/local/lib/ser/modules/uri.so"
loadmodule "/usr/local/lib/ser/modules/group.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")
modparam("usrloc","db_url","mysql://ser:heslo@localhost:3306/ser")
modparam("acc", "log_level", 1)
modparam("acc", "log_flag", 1)
modparam("acc", "db_flag", 1)
modparam("acc", "db_missed_flag", 2)
modparam("acc", "log_fmt", "miocfst")
modparam("acc", "failed_transactions" ,1)
# -- 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
# ------------------------- 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;
};
# 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");
fix_nated_contact(); # Rewrite
contact with source IP of signalling
if (method == "INVITE") {
log("***********************INVITE**************************");
fix_nated_sdp("1"); # Add
direction=active to SDP
};
force_rport(); # Add rport
parameter to topmost Via
setflag(6); # Mark as NATed
};
};
setflag(1);
setflag(2);
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 (uri==myself) {
if (method=="REGISTER") {
save("location");
break;
};
if (method=="INVITE")
{
log("**********************in
invite******************************");
log(1, "INVITE\n");
setflag(1); /* set
foraccounting (the same valueas in log_flag!) */
};
if (method=="MESSAGE")
{
log("**********************in
message******************************");
log(1, "MESSAGE\n");
setflag(1); /* set
foraccounting (the same valueas in log_flag!) */
};
if ( method=="BYE" || method=="CANCEL" )
{
log("**********************in
bye******************************");
log (1, "BYE or CANCEL\n");
setflag(1);
};
lookup("aliases");
if (!uri==myself) {
append_hf("P-hint: outbound
alias\r\n");
route(1);
break;
};
if(uri=~"^sip:[6-9].*@*.*.*.*")
{
log("**********************in
forward*******************************");
rewritehostport("*.*.*.101:5060");
# forward(uri:host,uri:port);
t_relay_to_udp("*.*.*.101","5060");
break;
}
else
{
log("**************************in user
location********************");
# 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\.|10\.|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();
};
}
with regards
tech_voip
________________________________________________________________________
Yahoo! India Matrimony: Find your life partner online
Go to: http://yahoo.shaadi.com/india-matrimony
-------- Original Message --------
From: - Thu Nov 18 11:48:27 2004
X-Mozilla-Status: 0001
X-Mozilla-Status2: 00800000
Message-ID: <419CE06A.3020008(a)cybertheque.org>
Date: Thu, 18 Nov 2004 11:48:26 -0600
From: msg <msg(a)cybertheque.org>
Organization: Cybertheque Museum
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.7.2)
Gecko/20040804 Netscape/7.2 (ax)
X-Accept-Language: en,ja
MIME-Version: 1.0
To: serusers(a)lists.iptel.org
Subject: Ver 0.8.14 on OpenBSD/sparc segfaults
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Transfer-Encoding: 7bit
Greetings:
With some tweaks (no pthreads, missing includes, reordering includes,
etc) I was able to build Ver 0.8.14 on OpenBSD/sparc 3.2, gcc 2.95.3.
When attempting to run the executable for the first few times, I got
the unresolved symbol messages other OpenBSD users have posted to this
list while 'ser' is loading modules; however this behavior vanished
spontaneously and now ser simply segfaults and dumps core after about
five seconds (Sun sparc IPX host).
OpenBSD 3.2 doesn't have 'pthreads' but instead has a similar 'pth'
package; 'ser' was built using SysV semaphores instead.
`ser -V`:
version: 0.8.14 (sparc/openbsd)
flags: STATS:Off, USE_IPV6, USE_TCP, DISABLE_NAGLE, DNS_IP_HACK,
SHM_MEM, SHM_MM AP, PKG_MALLOC, F_MALLOC MAX_RECV_BUFFER_SIZE 262144,
MAX_LISTEN 16, MAX_URI_SIZE 1024, BUF_SIZE 65535
@(#) $Id: main.c,v 1.168.4.3 2004/06/28 15:41:21 andrei Exp $
main.c compiled on 13:32:17 Nov 17 2004 with gcc 2.95
'ser -c' also segfaults but first reports:
0(26788) WARNING: could not read from /dev/random (5)
0(26788) ERROR: shm_mem_init: could not initialize lock
Backtrace of the core file from running 'ser' with an empty 'ser.cfg':
This GDB was configured as "sparc-unknown-openbsd3.2"...
(no debugging symbols found)...
Core was generated by `ser'.
Program terminated with signal 11, Segmentation fault.
Reading symbols from /usr/lib/libc.so.28.5...(no debugging symbols found)...
done.
Reading symbols from /usr/libexec/ld.so...(no debugging symbols
found)...done.
#0 0x9ee88 in lock_destroy ()
(gdb) bt
#0 0x9ee88 in lock_destroy ()
#1 0x9ede3 in shm_mem_destroy ()
#2 0x9e80b in shm_mem_init_mallocs ()
#3 0x9ea13 in shm_mem_init ()
#4 0x9d783 in init_shm_mallocs ()
#5 0x3acb7 in main ()
#6 0x118df in ___start ()
Anyone care to help?
All replies much appreciated.
Michael Grigoni
Cybertheque Museum
Ok, that's what I was stating actually. The fact that my invite's go
below the t_on_reply, I'll paste my config update. Thanks for the info
I'll search google for Java's implementation.
---SNIP---
ser.cfg
t_on_reply("1");
if (method=="INVITE") {
log(1, "LOG: Caught INVITE \n");
if (lookup("location")) {
log (1, "LOG: Caught registered user, sending
there\n");
# NOTE forcing rtp maybe bad idea for ALL users,
this is
# a quick fix
#fix_nated_contact();
#force_rtp_proxy();
#forward(uri:host, uri:port);
t_relay();
break;
} else if (uri=~"^sip:[0-9]*@") { # ... forward to
gateways then;
forward(xxx.xxx.xxx.xxx, 5060);
log(1, "LOG: Tapping rowlf\n");
break;
};
};
if (!t_relay()) {
sl_reply_error();
};
}
# !! Nathelper
onreply_route[1] {
# NATed transaction ?
# if (isflagset(6)) {
# log(1, "transaction was sent to a NATED client -> fix
nated contact\n");
# fix_nated_contact();
# force_rtp_proxy();
# append_hf("P-hint: fixed NAT contact for
response\r\n");
# }
if (isflagset(6) && status =~ "(183)|2[0-9][0-9]") {
log(1, "transaction was sent to a NATED client -> fix nated
contact\n");
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();
};
}
-----Original Message-----
From: Greger V. Teigre [mailto:greger@axxessanywhere.com]
Sent: Friday, November 19, 2004 6:21 AM
To: Matt Schulte; serusers(a)lists.iptel.org
Subject: Re: [Serusers] NATHelper + usrloc (+ rtpproxy?)
Hi Matt,
When a non-NATed incoming call to a NATed client is processed (INVITE),
you
must make sure that you have a t_on_reply("1"); before you call t_relay
(or
forward). The INVITE will not be detected as behind a NAT, but the
destination is (flag is set), and the reply will take care of the
rewrite.
In your config, it looks like you call t_relay before setting
t_on_reply("1"); further down. A forward will only forward the SIP
INVITE
to another SIP proxy for processing.
Paul (Java Rockx) just recently posted his config file with a
working
NAThelper/RTPproxy setup. I suggest you look at the call logic found
there.
His config is also easy to read with a lot of nice headers :-)
I haven't tested RTP proxy between a client behind NAT and Asterisk,
but
I believe that as long as you record-route the INVITE (as you do) and
handle
the replies properly, it should work.
g-)
Matt Schulte wrote:
> Another note to this, I moved my 'forward' and lookup statements down
> below the t_onreply statement. I figured this should allow ser to see
> that the client is in fact behind a NAT. It catches that now however I
> see this in my debug (ser):
>
> ser[21770]: transaction was sent to a NATED client -> fix nated
> contact ser[21770]: ERROR: on_reply processing failed
>
> Could the last error be a/the problem? Come on I know someone else has
> had this problem. Please help!
> NOTE: I just tested this out on Asterisk (as a client behind NAT) and
> got the same results. It's simply not changing the RTP IP address..
>
> --snippet--
>
> onreply_route[1] {
> # NATed transaction ?
> if (isflagset(6) && status =~ "(183)|2[0-9][0-9]") {
> log(1, "transaction was sent to a NATED client -> fix nated
> contact\n");
> 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();
> };
>
>
> -----Original Message-----
> From: Matt Schulte
> Sent: Thursday, November 18, 2004 8:09 AM
> To: serusers(a)lists.iptel.org
> Subject: [Serusers] NATHelper + usrloc (+ rtpproxy?)
>
>
> All,
>
> This is my first post to this list so go easy on me. :-) I'm rather
> new to Ser, in fact I just installed it for the first time early in
> the week. I'm working on the NAThelper module to get traversal
> working, I have outbound (sip phone -> NATout -> ser) working just
> peachy, RTP works in both directions hooray. The question is I'm
> having problems getting RTP inbound, the ring of course goes through,
> and RTP from the NAT'd side of course works fine however getting back
> through the NAT (from outside) for RTP in this sense fails. Let me
> explain the setup:
>
> I'm using the registrar, NAThelper, usrloc, and of course (Portaone's)
> RTPproxy modules. The current SIP phone is an SNOM (yes yes, I
> know..). The "endpoint" is Asterisk. When I do a sip debug on
> Asterisk, I see the RTP request however it's coming from the NAT'd
> fake address:
>
> v=0
> o=root 780961119 780961119 IN IP4 192.168.1.101
> s=call
> c=IN IP4 192.168.1.101
> t=0 0
> m=audio 10004 RTP/AVP 0
> a=rtpmap:0 pcmu/8000
> a=sendrecv
>
>
> I have an idea of what to fix just not sure how to fix it. Obviously
> we need it to goto RTPproxy, since this is "backwards" how would I get
> it to recognize the correct IP?
>
> See my config below, most of it is ripped off of the NAThelper.cfg
> example. :-) Thanks all..
>
> NOTE: All calls are destined for ${SIPDOMAIN}, in this case, the
> machines hostname. This is normal and intentional :-)
>
> # ---- SNIPPAGE ----
> 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
> # 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
> log("LOG: Caught uac test 3 \n");
> 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") {
> log("LOG: fix nated sdp\n");
> 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 (uri==myself) {
>
> if (method=="REGISTER") {
> log("LOG: Caught register, registering user in
> local db\n");
> save("location");
> break;
> };
>
> lookup("aliases");
> if (!uri==myself) {
> append_hf("P-hint: outbound alias\r\n");
> route(1);
> break;
> };
> log("LOG: Caught uri myself\n");
> # native SIP destinations are handled using our USRLOC
> DB
> #if (!lookup("location")) {
> # sl_send_reply("404", "Do what now");
> # break;
> #};
> };
> append_hf("P-hint: usrloc applied\r\n");
> route(1);
>
> }
>
> route[1]
> {
> # !! Nathelper
> if (uri=~"[@:](192\.168\.|10\.|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)) {
> log("LOG: Caught NAT flag 6 forcing rtp proxy\n");
> force_rtp_proxy();
> };
> if (method=="REGISTER") {
> break;
> log("LOG: Caught Register down in our call routing,
> breaking\n");
> };
>
> #### Below is mostly my own doing ####
> if (method=="INVITE") {
> log("LOG: Caught INVITE \n");
> if (lookup("location")) {
> log ("LOG: Caught registered invite, sending
> there\n");
> # NOTE forcing rtp maybe bad idea for ALL
> users, this is
> # a quick fix (which doesn't work anyway!)
> #force_rtp_proxy();
> #forward(uri:host, uri:port); #nor does this
> t_relay();
> break;
> } else if (uri=~"^sip:[0-9]*@") { # ... forward to
> asterisk;
> forward(xxx.xxx.xxx.xxx, 5060);
> log("LOG: Tapping rowlf\n");
> break;
> };
> };
> #### ####
>
> t_on_reply("1");
>
> 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();
> };
> }
>
> _______________________________________________
> Serusers mailing list
> serusers(a)lists.iptel.org http://lists.iptel.org/mailman/listinfo/serusers
Apologies for the extent to which this is off-topic. I've seen related
mails
in the serusers archive, and expect that this community can at worst
tell me
where better to post.
I have a Cisco 7960 on my desk, and can't manage to make it
authenticate to
either the iptel.org SIP server or to an Asterisk system where I'm also
made
welcome. I'm not seeing problems with X-Lite.
Between Google, serusers archives, and the Cisco docs, I can't see what
it
is that I need to do.
I don't yet have my own SIP server running, so I'm not in a position to
make server-side experiments.
Any help will be greatly appreciated. Thanks in advance.
Best regards,
Niall O'Reilly
PGP key ID: AE995ED9 (see www.pgp.net)
Fingerprint: 23DC C6DE 8874 2432 2BE0 3905 7987 E48D AE99 5ED9