Dear group
Ive a pair of Vizufon model CIP 4500. I want to run it on my OWN LAN using a sip server. Im trying to install SER 0.8.14. is it possible to run two hard SIP phone without authenticate from any Internet server only from my LAN sip server? Can any one help me regard this.
Thanks
Moin
---------------------------------
Yahoo! Messenger - Communicate instantly..."Ping" your friends today! Download Messenger Now
hi
i tryied your way to rout the call to other side in
case of Busy on No Response. but i asterisk is
receiving this call it is replying with 403 Forbidden
or some times 407 Proxy Authentication Required. is
this ok.
is this ok
i have dialplane for the UAS it should invoke the
Voicemail for the callee.
thanks
Kamran
--- Andreas Granig <andreas.granig(a)inode.info> wrote:
> Hi!
>
> Kamran Ahmad wrote:
> > my question is there any way to check wheather UAS
> is
> > busy or not responding then forword it to other
> > asterisk proxy server for callforword,confrence or
> > PSTN according to dialplan(extension.conf).
>
> Try something like this:
>
> route{
> # ...
> lookup("location");
> t_on_failure("1");
> t_relay();
> }
>
> failure_route[1]{
> if(t_check_status("486")) {
> # busy, so rewrite to new location here, then:
> t_relay();
> }
> }
>
__________________________________
Yahoo! Messenger
Show us what our next emoticon should look like. Join the fun.
http://www.advision.webevents.yahoo.com/emoticontest
This list is dealing with all around SER, but I was just wondering.
Has anybody tried to get encoding engine for X-lite passwords?
I would like to make a self instalation package and this is giving me
a good headache.
Thanks,
Lada
I changed the line modparam("nathelper", "rtpproxy_sock", "/var/run/rtpproxy.sock") to modparam("nathelper", "rtpproxy_sock", "udp:localhost:22222") and started the rtpproxy as ./rtpproxy -s udp from the relevant directory and this resulted in a series of "rtpp_command: no response from rtpproxy" and rtpproxy temporarily disabled" errors. If I return to the original modparam and start it as ./rtpproxy then it works but like I said when the private client rings the public client, I get "ERROR: send_rtpp_command: cant read reply from a RTP Proxy".
Any further ideas? Has anyone on the mailing list experienced this? I am using the script given in the onsip getting started doc for 0.9.0. but am using ser 0.8.14.
BR,
Vivienne
"Greger V. Teigre" <greger(a)teigre.com> wrote:
See inline.
> Thank you for that Greger. I have altered my script so that it
> exactly mimics the one in the onsip document besides the has_totag
> and fix_nated register. All is good when I ring from a private phone
> to a public phone i.e. the audio is very clear and the following
> messages are in /var/log.
>
> ERROR: extract_body: message body has length zero
> ERROR: force_rtp_proxy2: cant extract body from the message.
>
> I assume this is because of the 200 OK to a register message where
> theres no sdp?? Is this correct?
That's correct. You will find code in the example configs where we test for an empty body before calling force_rtp_proxy.
> However when I try to phone from public into private I get:
>
> ERROR: send_rtpp_command: cant read reply from a RTP Proxy.
>
> I find this confusing because I know the rtpproxy is working.
This means that rtpproxy is not responding to a particular message. I have heard some people have had problems with the socket based communication. I only use UDP. This is what you do to set up udp (22222 is default port):
modparam("nathelper", "rtpproxy_sock", "udp:localhost:22222")
rtpproxy must be started with -s udp:*
g-)
> BR
> Vivienne.
>
> "Greger V. Teigre" <greger(a)teigre.com> wrote:
> Yes, you can use fix_nated_contact instead. It is not entirely
> RFC-compliant, but that's what you have in 0.8.14.
> The has_totag() only tests to see if the INVITE has a To header,
> which means that it is in-dialog and thus is a re-INVITE. An INVITE
> will normally not have loose routing unless you have another SIP
> proxy forwarding an INVITE to you (in which case you should assume
> that the other proxy handles NAT and thus not trigger NAT-related
> code). You can safely remove the has_totag() if you use
> force_rtp_proxy("l")
> g-)
>
> ---- Original Message ----
> From: Vivienne Curran
> To: Greger V. Teigre ; serusers(a)lists.iptel.org
> Sent: Tuesday, April 05, 2005 02:25 PM
> Subject: Re: [Serusers] Contact Header and SDP not rewritten
>
>> Greger,
>>
>> Since fix_nated_register does not exist with 0.8.14, will
>> fix_nated_contact do instead? Also if I am leaving out the
>> has_totag() at the start of the script, will this greatly effect its
>> functionality?
>>
>> Thank you,
>> Vivienne
Send instant messages to your online friends http://uk.messenger.yahoo.com
Hello,
I have a problem whereby when a private client rings a public client only the public user can hear voice and when the public user rings the private user, no audio is transmitted. After looking at the messages I have have determined that the contact header and sdp part of the invite contains the private address of the natted client. This would lead me to believe that the registration process is incorrect. My problem is that I believe my script should handle the registration process correctly and I suspect that the following code is being skipped: I tried changing it to nat_uac_test("19") and fix_nated_sdp("3") but that didnt help.
if (nat_uac_test("3")){
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
if (method == "INVITE"){
fix_nated_sdp("1"); #Add direction=active to SDP
force_rtp_proxy();
};
force_rport(); # Add rport parameter to topmost Via
setflag(6); # Mark as Nated
};
};
I have included the log message below and my ser.cfg as an attachment. Please let me know where I could be going wrong.
Thank you,
Vivienne.
2093 (private) ringing 2092 (public)
U 84.203.148.14:5060 -> 84.203.148.146:5060
INVITE sip:2092@84.203.148.146 SIP/2.0..Via: SIP/2.0/UDP 172.16.3.31;branch
=z9hG4bK1a48edc121f5bc1f..From: "2093" <sip:2093@84.203.148.146>;tag=2dc376
dcd4655094..To: <sip:2092@84.203.148.146>..Contact: <sip:2093@172.16.3.31>.
.Supported: replaces..Call-ID: 44e1ae63c476fbff@172.16.3.31..CSeq: 10327 IN
VITE..User-Agent: Grandstream BT100 1.0.5.18..Max-Forwards: 70..Allow: INVI
TE,ACK,CANCEL,BYE,NOTIFY,REFER,OPTIONS,INFO,SUBSCRIBE..Content-Type: applic
ation/sdp..Content-Length: 362....v=0..o=2093 8000 0 IN IP4 172.16.3.31..s=
SIP Call..c=IN IP4 172.16.3.31..t=0 0..m=audio 5004 RTP/AVP 0 8 4 18 2 15 9
9 9..a=sendrecv..a=rtpmap:0 PCMU/8000/3..a=rtpmap:8 PCMA/8000/3..a=rtpmap:4
G723/8000/3..a=rtpmap:18 G729/8000/3..a=rtpmap:2 G726-32/8000/3..a=rtpmap:
15 G728/8000/3..a=rtpmap:99 iLBC/8000/3..a=fmtp:99 mode=20..a=rtpmap:9 G722
/8000/3..a=ptime:20..
U 84.203.148.146:5060 -> 84.203.148.14:5060
SIP/2.0 100 trying -- your call is important to us..Via: SIP/2.0/UDP 172.16
.3.31;branch=z9hG4bK1a48edc121f5bc1f;rport=5060;received=84.203.148.14..Fro
m: "2093" <sip:2093@84.203.148.146>;tag=2dc376dcd4655094..To: <sip:2092@84.
203.148.146>..Call-ID: 44e1ae63c476fbff@172.16.3.31..CSeq: 10327 INVITE..Se
rver: Sip EXpress router (0.8.14 (i386/linux))..Content-Length: 0..Warning:
392 84.203.148.146:5060 "Noisy feedback tells: pid=4732 req_src_ip=84.203
.148.14 req_src_port=5060 in_uri=sip:2092@84.203.148.146 out_uri=sip:2092@1
57.190.74.151 via_cnt==1"....
U 84.203.148.146:5060 -> 157.190.74.151:5060
INVITE sip:2092@157.190.74.151 SIP/2.0..Via: SIP/2.0/UDP 84.203.148.146;bra
nch=z9hG4bK77bc.b54ca216.0..Via: SIP/2.0/UDP 172.16.3.31;rport=5060;receive
d=84.203.148.14;branch=z9hG4bK1a48edc121f5bc1f..From: "2093" <sip:2093@84.2
03.148.146>;tag=2dc376dcd4655094..To: <sip:2092@84.203.148.146>..Contact: <
sip:2093@84.203.148.14:5060>..Supported: replaces..Call-ID: 44e1ae63c476fbf
f@172.16.3.31..CSeq: 10327 INVITE..User-Agent: Grandstream BT100 1.0.5.18..
Max-Forwards: 69..Allow: INVITE,ACK,CANCEL,BYE,NOTIFY,REFER,OPTIONS,INFO,SU
BSCRIBE..Content-Type: application/sdp..Content-Length: 443....v=0..o=2093
8000 0 IN IP4 172.16.3.31..s=SIP Call..c=IN IP4 84.203.148.1484.203.148.146
..t=0 0..m=audio 35006 RTP/AVP 0 8 4 18 2 15 99 9..a=sendrecv..a=rtpmap:0 P
CMU/8000/3..a=rtpmap:8 PCMA/8000/3..a=rtpmap:4 G723/8000/3..a=rtpmap:18 G72
9/8000/3..a=rtpmap:2 G726-32/8000/3..a=rtpmap:15 G728/8000/3..a=rtpmap:99 i
LBC/8000/3..a=fmtp:99 mode=20..a=rtpmap:9 G722/8000/3..a=ptime:20..a=direct
ion:active..a=oldmediaip:172.16.3.31..a=nortpproxy:yes..
U 84.203.148.146:5060 -> 157.190.74.150:5060
INVITE sip:2092@157.190.74.150 SIP/2.0..Via: SIP/2.0/UDP 84.203.148.146;bra
nch=z9hG4bK77bc.b54ca216.1..Via: SIP/2.0/UDP 172.16.3.31;rport=5060;receive
d=84.203.148.14;branch=z9hG4bK1a48edc121f5bc1f..From: "2093" <sip:2093@84.2
03.148.146>;tag=2dc376dcd4655094..To: <sip:2092@84.203.148.146>..Contact: <
sip:2093@84.203.148.14:5060>..Supported: replaces..Call-ID: 44e1ae63c476fbf
f@172.16.3.31..CSeq: 10327 INVITE..User-Agent: Grandstream BT100 1.0.5.18..
Max-Forwards: 69..Allow: INVITE,ACK,CANCEL,BYE,NOTIFY,REFER,OPTIONS,INFO,SU
BSCRIBE..Content-Type: application/sdp..Content-Length: 443....v=0..o=2093
8000 0 IN IP4 172.16.3.31..s=SIP Call..c=IN IP4 84.203.148.1484.203.148.146
..t=0 0..m=audio 35006 RTP/AVP 0 8 4 18 2 15 99 9..a=sendrecv..a=rtpmap:0 P
CMU/8000/3..a=rtpmap:8 PCMA/8000/3..a=rtpmap:4 G723/8000/3..a=rtpmap:18 G72
9/8000/3..a=rtpmap:2 G726-32/8000/3..a=rtpmap:15 G728/8000/3..a=rtpmap:99 i
LBC/8000/3..a=fmtp:99 mode=20..a=rtpmap:9 G722/8000/3..a=ptime:20..a=direct
ion:active..a=oldmediaip:172.16.3.31..a=nortpproxy:yes..
U 157.190.74.151:5060 -> 84.203.148.146:5060
SIP/2.0 100 Trying..Via: SIP/2.0/UDP 84.203.148.146;branch=z9hG4bK77bc.b54c
a216.0..Via: SIP/2.0/UDP 172.16.3.31;rport=5060;received=84.203.148.14;bran
ch=z9hG4bK1a48edc121f5bc1f..From: "2093" <sip:2093@84.203.148.146>;tag=2dc3
76dcd4655094..To: <sip:2092@84.203.148.146>..Call-ID: 44e1ae63c476fbff@172.
16.3.31..CSeq: 10327 INVITE..User-Agent: Grandstream BT100 1.0.5.18..Conten
t-Length: 0....
U 157.190.74.151:5060 -> 84.203.148.146:5060
SIP/2.0 180 Ringing..Via: SIP/2.0/UDP 84.203.148.146;branch=z9hG4bK77bc.b54
ca216.0..Via: SIP/2.0/UDP 172.16.3.31;rport=5060;received=84.203.148.14;bra
nch=z9hG4bK1a48edc121f5bc1f..From: "2093" <sip:2093@84.203.148.146>;tag=2dc
376dcd4655094..To: <sip:2092@84.203.148.146>;tag=10bdf2044401a257..Call-ID:
44e1ae63c476fbff@172.16.3.31..CSeq: 10327 INVITE..User-Agent: Grandstream
BT100 1.0.5.18..Content-Length: 0....
Send instant messages to your online friends http://uk.messenger.yahoo.com
#
# $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"
alias="157.190.74.152:5060"
# ------------------ module loading ----------------------------------
# Uncomment this if you want to use SQL database
loadmodule "/usr/lib/ser/modules/mysql.so"
loadmodule "/usr/lib/ser/modules/sl.so"
loadmodule "/usr/lib/ser/modules/tm.so"
loadmodule "/usr/lib/ser/modules/rr.so"
loadmodule "/usr/lib/ser/modules/maxfwd.so"
loadmodule "/usr/lib/ser/modules/usrloc.so"
loadmodule "/usr/lib/ser/modules/registrar.so"
loadmodule "/usr/lib/ser/modules/textops.so"
loadmodule "/usr/lib/ser/modules/nathelper.so"
#loadmodule "/usr/lib/ser/modules/pa.so"
loadmodule "/usr/lib/ser/modules/cpl-c.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
#NB Had to up this value from 1 to 11 because reinvites were bombarding called phone
modparam("rr", "enable_full_lr", 11)
#!! Nathelper
modparam("registrar", "nat_flag", 60)
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")
modparam("tm", "fr_inv_timer", 20)
#modparam("pa", "default_expires", 3600)
modparam("usrloc", "db_url", "sql://root:1alfa156@localhost/ser")
#modparam("cpl-c", "cpl_db", "mysql://root:1alfa156@localhost/ser")
#modparam("cpl-c", "cpl_table", "cpl")
#modparam("cpl-c", "cpl_dtd_file", "/work/sip_router/modules/cpl-ccpl-06.dtd")
# ------------------------- 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;
};
#######################################################################################
if (nat_uac_test("3")){
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
if (method == "INVITE"){
fix_nated_sdp("1"); #Add direction=active to SDP
force_rtp_proxy();
};
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();
# loose-route processing
if (loose_route()) {
#commented 11/02/05
#t_relay();
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) {
log(1,"into loop");
if (method=="REGISTER") {
# Uncomment this if you want to use digest authentication
# if (!www_authorize("157.190.74.152", "subscriber")) {
# www_challenge("157.190.74.152", "0");
# break;
# };
#cpl_process_register();
save("location");
break;
};
# if (method=="SUBSCRIBE")
# {
# log(1, "Subscribe\n");
# if(t_newtran())
# {
# log(1, "Registrar\n");
# handle_subscription("registrar");
# };
# break;
# };
lookup("aliases");
if (!uri==myself) {
append_hf("P-hint: outbound alias\r\n");
route(1);
break;
};
if (method=="INVITE"){
log(1,"in invite loop");
#break; #no 100 trying
#if (!cpl_run_script("incoming","is_stateless"))
#{
# #script execution failed
# t_reply("500", "CPL script execution failed");
#};
t_on_failure("1");
};
# native SIP destinations are handled using our USRLOC DB
if (!lookup("location")) {
#sl_send_reply("404", "Not Found");
route(2);
break;
};
};
# forward to current uri now; use stateful forwarding; that
# works reliably even if we forward from TCP to UDP
#commented 11/02/05#######################
if (!t_relay()) {
sl_reply_error();
};
#route(1);
}
######################################entered 11/02/05############################################################
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 (isflagset(6)){
force_rtp_proxy();
}
t_on_reply("1");
if(!t_relay()){
sl_reply_error();
break;
};
}
######################################entered 11/02/05############################################################
#!! Nathelper
onreply_route[1] {
if(isflagset(6) && status =~ "(183)|2[0-9][0-9]"){
fix_nated_contact();
force_rtp_proxy();
}else if (nat_uac_test("1")){
fix_nated_contact();
};
}
#################################################################################################################
# ------------- handling of unavailable user ------------------
route[2] {
# non-Voip -- just send "off-line"
if (!(method == "INVITE" || method == "ACK" || method == "CANCEL")) {
sl_send_reply("404", "Not Found");
break;
};
# forward to voicemail now
rewritehostport("157.190.74.152:5062");
t_relay_to_udp("157.190.74.152", "5062");
}
# if forwarding downstream did not succeed, try voicemail running
# at 172.16.2.120:5062
failure_route[1] {
revert_uri();
rewritehostport("157.190.74.152:5062");
append_branch();
t_relay_to_udp("157.190.74.152", "5062");
}
What distro of linux? (unix even?) What type of motherboard, I wouldn't
expect hardware to be the issue though.. Is this a production problem,
as in did it happen out of the blue? One thing you could do is log
save_loc errors if not already.. If save_loc is NOT failing then like
you said something is seriously messed up... :-)
if (!save("location")) {
sl_send_reply("503", "OH NO THE WORLD IS
FLAT");
xlog("L_INFO", "FATAL: Register failed for
%fu");
} else {
xlog("L_INFO", "LOG: Yippy");
}
-----Original Message-----
From: Iqbal [mailto:iqbal@gigo.co.uk]
Sent: Tuesday, April 05, 2005 12:56 PM
To: serusers(a)lists.iptel.org
Subject: [Serusers] some REGISTER requests not passing through to DB
Hi
Just come across a really strange problem, some of my REGISTER queries
do not hit the DB, even though they hit SER, anyone ever come across
this, it only seems to happen with a particular kind of hardware
(unbranded), and only started recently. No firmware upgrades done
Iqbal
_______________________________________________
Serusers mailing list
serusers(a)lists.iptel.org http://lists.iptel.org/mailman/listinfo/serusers
Quek Eric <inputdev(a)yahoo.com> wrote: thx Steve,
actually i dont quite understand e ser.cfg my previous
project mate created.
here i added tis portion into my ser.cfg...can u teach
me where do i call t_on_failure?
if(method=="ACK" || method=="INVITE" || method=="BYE"|| method=="REFER")
{
if(t_newtran())
{
t_reply("100","Trying -- just wait a minute!");
if(method=="INVITE" || method=="REFER")
{
log("**************** vm start -begin ******************\n");
if( uri =~ "conference" )
{
if(!vm("/tmp/am_fifo","conference"))
{
log("could not contact conference server\n");
t_reply("500","could not contact conference server");
};
}
else if( uri =~ "echo" )
{
if(!vm("/tmp/am_fifo","echo"))
{
log("could not contact echo\n");
t_reply("500","could not contact echo");
};
}
else
{
if(!vm("/tmp/am_fifo","voicemail"))
{
log("could not contact voicemail\n");
t_reply("500","could not contact voicemail");
};
};
log("**************** vm start - end ******************\n");
break;
};
if(method=="BYE")
{
log("**************** vm end/refer - begin ******************\n");
if(!vm("/tmp/am_fifo","bye"))
{
log("could not contact the media server\n");
t_reply("500","could not contact the media server");
};
log("**************** vm end/refer - end ********************\n");
break;
};
}
else
{
log("could not create new transaction\n");
sl_send_reply("500","could not create new transaction");
};
};
# Voicemail specific configuration - end
Pls do help me...
rgds,
Eric
Sure. Call t_on_failure("7") in route block 0, the
main route block
in
SER. This
will define an internal "flag" labeled 7. When the
current call "fails"
that is does not
get a 200 OK message SER will look for a failure block
with the label 7
and
execute the code therein. Note that 7 is an arbitrary
integer. You can
pick whatever
integer makes you happy and doesn't conflict with
existing flags.
In the failure_route most people simply re-write the
destination
hostname and
then t_relay the call to that new host. You may need
to re-write the
port number
too. In either case this host and/or port is where
your voicemail
application is
listening.
A failure_route is used instead of the regular route
statement
because
you want
this section of code to be reached when a status code
other than a 200
OK is
received for a call. An unanswered call gets something
like a 487 (you
should
check this for the actual number).
If you use SEMS you have yet another challenge. When
SEMS was first
deployed
it communicated with SER used a fifo. Since the fifo
is not a SIP
addressable
entity you needed a way for the failure_route to send
SIP messages to
SEMS.
Most people used a second instance of SER on the same
box but with a
stripped down config file. This second instance could
communicate with
SEMS
using a different named pipe.
Newer versions of SEMS do not have this limitation
but you need to
configure
the type of interface SEMS will use. fifo or socket. I
did one
installation this
way but then moved onto using Asterisk for voicemail.
Hope this helps.
_Steve
__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com
__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com