Hi,
Yesterday I noticed something strange happenign one on of our
servers. Calls were being sent to servers within our VoIP
platform by OpenSER without (as far as I can see) really being
handled according to our OpenSER configuration.
When I looked into it, I found that the Request-URI contained
the IP address of the internal server, instead of the IP address
of our OpenSER machine or our SIP domain.
How can I check that the Request-URI contains only the SIP
domain or the IP address of the OpenSER server?
Might this have something to do with the loose_route() block?
Here's (heavily edited) basically our INVITE handling code from
openser.cfg:
if (loose_route())
{
use_media_proxy();
t_relay();
exit;
};
if (method=="INVITE")
{
t_on_reply("1");
rewritehost("SIP_DOMAIN");
# Check if it is international number format
if (uri=~"^sip:00")
{
strip(2);
};
if ( (method == "INVITE") )
{
if (!proxy_authorize("SIP_DOMAIN", "subscriber"))
{
proxy_challenge("SIP_DOMAIN", "0");
exit;
};
# let's check from=id ... avoids accounting confusion
if (!check_from())
{
sl_send_reply("403", "That is ugly -- use
From=id next time (gw)");
exit;
};
};
if (is_uri_host_local())
{
log("ATS: incoming message is for a local host ($tu)");
route(3);
};
--
Andreas Sikkema