Hello,
I want to build a system that will allow to make SIP calls between IPv4-only UAs and IPv6-only UAs.
Has anybody tryd this before? Any success?
Is it possible with SER?
In the RTP-streams between the IPv4-UA and the IPv6-UA there must be a "black box" converting
the IPv6 stream to a IPv4 stream and vice versa. Could this be a back-to-back server? Are there
any other ways?
Thanks for any help
Armin
Hi,
When we need to dump register requests to a file, we use the following command
inside ser.cfg:
if (method=="REGISTER") {
exec_msg("echo `date` - From: $SIP_HF_FROM To: $SIP_HF_TO
Contact: $SIP_HF_CONTACT Src_IP: $SIP_SRCIP User_Agent: $SIP_HF_USER_AGENT >>
/var/log/ser/ser_register.log");
};
The command executes just fine every time and generates the info in the flat
file but the SYSLOG shows this error:
Jan 4 16:40:35 wailea /usr/local/sbin/ser[15344]: ERROR: exec_msg: cmd echo
`date` - From: $SIP_HF_FROM To: $SIP_HF_TO Contact: $SIP_HF_CONTACT Src_IP:
$SIP_SRCIP User_Agent: $SIP_HF_USER_AGENT >> /var/log/ser/ser_register.log
failed. exit_status=-1, errno=32: Broken pipe
This error only appears on RH9.0. It does not appear under Solaris 2.8 or
RH7.3.
Any idea how we can fix this?
Regards,
Andres
Hi,
I am trying to force incoming calls destined for a UA behind a symmetric
NAT through rtpproxy. In order to distinguish between those agents
behind a NAT and those out in the open, I saved their location in two
different tables upon registration. It now appears that even though I
set db_mode to '1' to force usrloc to immediately write-back all data
to the db, ser remembers a successful registration in the regular
location tables.
A REGISTER request is immediately written into my NAT tables while the
regular tables follows only a little later. When I call the UA in
question ser will find the agent in my regular location table. When I
manually delete the UA entry from the location table (and restart ser!)
my configuration will force the rtp stream just as expected.
Can anybody enlighten my whether this is a bug or a feature? Also I
would be very interested in learning how to handle UAs behind symmetric
NATs or how to keep state learned at registration time.
I attached parts of my configuration hoping to clarify what I am trying
to do.
Thilo
P.S.: this is ser 0.8.12
if (method=="REGISTER") {
if ("header indicates symmetric NAT") {
save("natlocation");
} else {
save("location");
};
};
[...]
if ((method==INVITE)) {
if(lookup("location")) {
xlog("L_ERR", "UA found in
'location'\n");
}
else {
if(lookup("natlocation")) {
xlog("L_ERR", "UA found in
'natlocation'\n");
force_rtp_proxy();
t_on_reply("2");
} else {
sl_send_reply("404", "Not
Found");
break;
};
};
};
[...]
onreply_route[2] {
if (status=~"2[0-9][0-9]"){
xlog("L_ERR", "forcing rtp stream back from NATed
UA through localhost\n");
force_rport();
force_rtp_proxy();
};
}
Hi all again,
from various examples in the SER admin_guide and my own SIP knowledge-base I
conclude, that the action "loose-route()" is responsible for correct routing
of those requests, that are not destined to the proxy (host of Request-URI
is not the proxy) and that have a proper Route-header indicating
"loose-routing".
As such the action "loose_route()" should be sufficient to modify the
Request in such a way, that the following action "t-relay()" finishes
processing of the request. Therefore the action short sequence
... if (loose_route()) { t_relay(); break; };
does all, what is necessary for loose routing of those requests.
My problem is, that I could not produce a condition, where "loose_route()"
evaluates to true, so that the action block { t_relay(); break; } is
executed. I expect, that in a simple call-scenario with one record-routing
SIP proxy (SER) the routing of the ACK- and the BYE-method should trigger
the above mentioned "loose_route()" action. But unfortunately it does not.
Why?
Please help (in best case confirm) my understanding of "loose_route()".
Franz
Hello everybody!
I am verifying "On-Reply processing" with a simple script:
...
t_on_failure("1");
if (!t_relay()) {
sl_reply_error();
break;
...
failure_route[1] {
append_branch ("sip:wnb@sip.fehome");
t_relay();}
When the first dialog is not answered (still in "180 ringing" status) within
20 secs (I have reduced the "fr_inv_timer" accordingly) the first branch
gets cancelled and an INVITE is sent for the new branch. That's ok.
But in parallel I get the following Error:
ERROR: t_should_relay: status rewrite by UAS: stored: 408, received: 487
How to interpret this?
Franz
Hi All!
I need some help in setting up iptables to let sip traffic pass in my machine using ser.
There is some doc about it?
Somebody can give me advice?
Thanks
Miklos
iPFONE Telefonia IP
Rua Caio Graco 735 São Paulo SP
iPBX +55 11 3801-3702
UK +44 870 - 3403539
FWD 64662
sip:ipfone@sipserver.com.br
www.ipfone.com.br
info(a)ipfone.com.br