Considering that we DON'T want to use an RTP Proxy (bad scalability,
waste of bandwidth and longer delays), is there any solution to the
"hairpin" problems?
Are there any "boxes" that look at the SIP messages and short-circuit
calls from and to the local network?
Thanks.
--
___________________________________________________
__
|- giannici(a)neomedia.it
|ederico Giannici http://www.neomedia.it
___________________________________________________
Hi!
The nat flag which will be loaded during lookup() - will it be set for
each branch so it can be queried in branch_route for all of the
registered contacts, or should I use isdsturiset() instead of testing
for the NAT flag?
regards
klaus
Hello,
I need help understanding how to handle "CANCEL" messages. Here is the
case -
1 Proxy rebuilds URI, sets 'failure_route', and executes 't_relay'
2 't_realy' times out and the proxy executes 'failure_route' after the
fr_timer hits
If the OUI cancels the call between steps 1 and 2, the proxy still executes
the 'failure_route' after the fr_timer hits.
Can I cancel any "t_on_failure" logic after receiving a CANCEL message?
Or, while in in the 'failre_rout' block, can I figure out that there was a
CANCEL message?
Thank You,
Dmitry
Hi!
In the following scenario, a call is forked to 3 phones. 2 of them are
behind the same NAT (same publich IP, different port, one uses STUN, one
not).
I xlog all branches,dest-sets... in route[] and then in branch_route.
But the branch route is executed on 2 times, instead of three times (the
destination set shows that there are 3 destinations)
Although the destination set is changed in the second branch processing.
Is this the intended way?
regards
klaus
route[]:
request's first branch: $br=sip:10.10.0.50:15360
request's all branches: $bR=sip:10.10.0.50:15360,
sip:klaus@83.136.33.3:8718
request's destination set: $ds=Contact: sip:klaus@83.136.33.19:5060,
sip:10.10.0.50:15360, sip:klaus@83.136.33.3:8718
request's destination uri: $du=
request's uri: $ru=sip:klaus@83.136.33.19:5060
activating t_on_branch(1)
branch_route[1]: first branch processing
branch_route[1]: request's first branch: $br=sip:10.10.0.50:15360
branch_route[1]: request's all branches: $bR=sip:10.10.0.50:15360,
sip:klaus@83.136.33.3:8718
branch_route[1]: request's destination set: $ds=Contact:
sip:klaus@83.136.33.19:5060, sip:10.10.0.50:15360,
sip:klaus@83.136.33.3:8718
branch_route[1]: request's destination uri: $du=
branch_route[1]: request's uri:
$ru=sip:klaus@83.136.33.19:5060
branch_route[1]: second branch processing
branch_route[1]: request's first branch: $br=sip:10.10.0.50:15360
branch_route[1]: request's all branches: $bR=sip:10.10.0.50:15360,
sip:klaus@83.136.33.3:8718
branch_route[1]: request's destination set: $ds=Contact:
sip:10.10.0.50:15360, sip:10.10.0.50:15360, sip:klaus@83.136.33.3:8718
branch_route[1]: request's destination uri: $du=sip:83.136.33.3:3003
branch_route[1]: request's uri: $ru=sip:10.10.0.50:15360
...no third branch procesing :-(
Hi!
I've handcrafted a REGISTER that contains a negative Content-Length:
from ngrep:
#
U x.x.x.x:5060 -> y.y.y.y:5060
REGISTER sip:123@mydomain.net SIP/2.0.
Via: SIP/2.0/UDP x.x.x.x:5060.
From: 123 <sip:123@mydomain.net:5060>;tag=33.
To: 123 <sip:123@mydomain.net:5060>.
Call-ID: 33-11277(a)x.x.x.x.
CSeq: 1 REGISTER.
Contact: sip:123@x.x.x.x:5060.
Content-Length: -1000.
Expires: 300.
syslog content:
Aug 31 11:04:48 xxx ser[3866]: ERROR:parse_content_length: parse error
near char [45][-]
Aug 31 11:04:48 xxx ser[3866]: ERROR:get_hdr_field: bad content_length
header
Aug 31 11:04:48 xxx ser[3866]: ERROR: build_res_buf_from_sip_req: alas,
parse_headers failed
Aug 31 11:04:48 xxx ser[3866]: pre_auth(): Error while sending 400 reply
So the parser works fine but I cannot send an error message to
prevent retransmissions from the UAC.
The same is true for alphanumeric characters within the Content-Length:
value.
To test the Content-Length stuff even more I've set the Content-Length
within the REGISTER to 1000 which yields a 'ERROR: t_newtran: EoH not
parsed' warning but SER still sends the 407 that I was hoping for.
Now the question is if there is any way to add something like a
failure_route block to allow logging and sending a generic or customized
4xx/5xx error message to prevent retransmissions.
Btw: My config is far from a stock one but it all comes down to a
standard REGISTER with radius_www_authorize() in the REGISTER block.
Any help appreciated,
Hendrik
--
freenet Cityline GmbH, Hamburger Chaussee 2-4, 24114 Kiel, Germany
Phone: +49 (0)431 9020552, Fax: +49 (0)431 9020559
Internet: http://www.freenet.de, eMail: hendrik.scholz(a)freenet-ag.de
Anyone can help me with the BYE messages that are not being logged?
Marc
-----Original Message-----
From: serusers-bounces(a)iptel.org [mailto:serusers-bounces@lists.iptel.org] On
Behalf Of Marc Khayat
Sent: Tuesday, August 30, 2005 12:26 PM
To: serusers(a)lists.iptel.org
Subject: [Serusers] Bye messages not logged
Hi all,
I upgraded my system from ser-0.8.14 to ser-0.9.3, and updated my
ser.cfg.
However, with the new thing, I'm getting INVITE and ACK messages, but no
the BYE nor the REGISTER messages.
I made no changes to the config file, only added the accounting
requirements. But is the below stateful?
Here's my ser.cfg:
loadmodule "/usr/local/lib/ser/modules/acc.so"
modparam("acc", "log_flag", 1 )
modparam("acc", "log_fmt", "miocfst")
modparam("acc", "failed_transactions", 1)
modparam("acc", "log_missed_flag", 2)
modparam("acc", "report_cancels", 1)
modparam("acc", "db_url", "mysql://ser:heslo@localhost/ser")
modparam("acc", "db_flag", 5)
modparam("acc", "db_missed_flag", 6)
# 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 >= 2048 ) {
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
if (!method=="REGISTER") record_route();
# subsequent messages within 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;
};
setflag(5);
setflag(6);
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=="INVITE") {
if (uri=~"^sip:9") {
t_relay_to_udp("50.65.11.23", "5060");
break;
};
};
if (method=="REGISTER") {
# Uncomment this if you want to use digest authentication
# if (!www_authorize("mydomain.net",
"subscriber")) {
# www_challenge("mydomain.net", "0");
# break;
# };
save("location");
break;
};
lookup("aliases");
if (!uri==myself) {
append_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]
{
# send it out now; use stateful forwarding as it works reliably
# even for UDP2TCP
if (!t_relay()) {
sl_reply_error();
};
}
_______________________________________________
Serusers mailing list
serusers(a)lists.iptel.org
http://lists.iptel.org/mailman/listinfo/serusers
Hi
I've been fiddeling with the AVPops module for some time now and havn't
really gotten it to work as intended. I was hoping that someone out
there might be able to explain the basics of the module, cause
apparently I'm misunderstanding it... I think :-)
I having trouble with pulling data from my openser DB with a scheme, and
then pushing (pushto) it into a request header.
The thing is I cant quite figure out, if I need to store the data I get
from my scheme or if I can use it directly in a pushto!
I have tried using a scheme:
modparam("avpops", "db_scheme",
"scheme0:uuid_col=contact;value_col=username;value_type=string;table=aliases")
and then loading and pushing it with:
avp_db_load("$from","s:pai/$scheme0");
avp_pushto("$P-Asserted-Identity","s:pai");
But this leaves me with no new field in the header, and nothing to show
for in my MySQL log!
I'm using these additional params for the AVPops:
modparam("avpops","avp_url","mysql://openser:heslo@localhost/openser")
modparam("avpops","avp_table","avptable")
modparam("avpops","use_domain",1)
The avptable is one I've created, since I wasn't sure if it needed to be
there or not.
Any and all help will be greatly appreciated, cause I'm really getting
stuck here.
Regards
Martin
Hi everybody,
I have two devices behind a NAT and with different codecs that can not agree upon a common codec and can not make it working.
Anyone have a sample config, using SER's nathelper in conjunction with Asterisk to rewrite the SDP so that the private IP addresses are not included in the re-invite.
Thanks
Frank
---------------------------------
Yahoo! Mail
Stay connected, organized, and protected. Take the tour
i am problem with msilo and serweb :)
i have installed the ser (cvs) and serweb, send IM put any thing in
sip address of recipient:
and send the message and view:
sadasd no exist.
Message has been successfully sended to address sip:sadasd@domain.com
and debug the SER:
3(9953) Warning: run_failure_handlers: no UAC support (0, 0)
the scrit ser:
route{
if ( !mf_process_maxfwd_header("10") )
{
sl_send_reply("483","To Many Hops");
drop();
};
if (uri==myself) {
{
# for testing purposes, simply okay all REGISTERs
if (method=="REGISTER")
{
save("location");
log("REGISTER received -> dumping messages with MSILO\n");
# MSILO - dumping user's offline messages
if (m_dump())
{
log("MSILO: offline messages dumped - if they were\n");
}else{
log("MSILO: no offline messages dumped\n");
};
break;
};
# domestic SIP destinations are handled using our USRLOC DB
if(!lookup("location"))
{
if (! t_newtran())
{
sl_reply_error();
break;
};
# we do not care about anything else but MESSAGEs
if (!method=="MESSAGE")
{
if (!t_reply("404", "Not found"))
{
sl_reply_error();
};
break;
};
log("MESSAGE received -> storing using MSILO\n");
# MSILO - storing as offline message
if (m_store("0"))
{
log("MSILO: offline message stored\n");
if (!t_reply("202", "Accepted"))
{
sl_reply_error();
};
}else{
log("MSILO: offline message NOT stored\n");
if (!t_reply("503", "Service Unavailable"))
{
sl_reply_error();
};
};
break;
};
# if the downstream UA does not support MESSAGE requests
# go to failure_route[1]
t_on_failure("1");
t_relay();
break;
};
# forward anything else
t_relay();
}
failure_route[1] {
# forwarding failed -- check if the request was a MESSAGE
if (!method=="MESSAGE")
{
break;
};
log(1,"MSILO:the downstream UA doesn't support MESSAGEs\n");
# we have changed the R-URI with the contact address, ignore it now
if (m_store("1"))
{
log("MSILO: offline message stored\n");
t_reply("202", "Accepted");
}else{
log("MSILO: offline message NOT stored\n");
t_reply("503", "Service Unavailable");
};
}
wath is the problem????