[OpenSIPS-Users] DNS Failover test
James Mbuthia
jmmbuthia at gmail.com
Thu Oct 14 01:37:27 CEST 2010
But when does the proxy create a location record?
When the callee phone registers it gets an authenticate challenge and
after the challenge it gets a 200 Ok header.
When the caller phone calls it gets a 407 proxy challenge and after
verification gets a 100 response.
According to my understanding the proxy creates a location record for
the person being called, however this is not entered into the
database so where is it? Below is a snippet of my invite and register
code in opensips.cfg
if (!(method=="REGISTER") && from_uri==myself) /*no multidomain version*/
##if (!(method=="REGISTER") && is_from_local()) /*multidomain */
##
{
if (!proxy_authorize("", "subscriber")) {
proxy_challenge("", "0");
exit;
}
if (!db_check_from()) {
sl_send_reply("403","Forbidden auth ID");
exit;
}
consume_credentials();
## # caller authenticated
}
if (is_method("REGISTER"))
{
# authenticate the REGISTER requests (uncomment to enable auth)
if (!www_authorize("", "subscriber"))
{
www_challenge("", "0");
exit;
}
##
if (!db_check_to())
{
sl_send_reply("403","Forbidden auth ID");
exit;
}
if (!save("location"))
sl_reply_error();
exit;
}
}
The proxy does not save the location details under the location table
however sending an invite before the callee has been registered
results in a 405. So, where does the proxy save the callee location if
its not saving on the database? And how do I need to go around that?
On 10/13/10, Bogdan-Andrei Iancu <bogdan at voice-system.ro> wrote:
> Right, and before that, when receiving a request, a proxy looks at the
> domain part of RURI to see if that domain is a SIP domain that can be
> locally handled or a it is a foreign SIP domain that need to forward to
> another SIP server.
>
> So, check if the domain RURI is a local domain - see the default
> opensips.cfg for an example how to do it.
>
> Regards,
> Bogdan
>
> Duane Larson wrote:
>>
>> I could be wrong but does your phone register with the proxy and then
>> the proxy create a location record for each user? That would be how
>> opensips would know how to route it.
>>
>>> On Oct 13, 2010 1:04 PM, "James Mbuthia" <jmmbuthia at gmail.com
>>> <mailto:jmmbuthia at gmail.com>> wrote:
>>>
>>> Hi guys,
>>>
>>> Am a SIP and Opensips newbie and am trying to create a proof of
>>> concept on a unique (I think) Opensips and SIPS implementation.
>>> Basically am developing a web-based SIP Phone based on PHP and using
>>> Opensips. Because of the nature of the application, users will have
>>> the same domain and just one proxy server which will process invites
>>> and registrations. Based on my understanding of SIP and Opensip, I
>>> have developed a UAC that can send invites and registrations to a
>>> proxy server. My problem is coming when I have to route a call from
>>> one agent to another. According to RFC 3263 the proxy server needs to
>>> determine the sip server for the person receiving the call. Know if
>>> the proxy server of the person receiving the call and the person
>>> initiating the call is the same and both the caller and callee are on
>>> the same domain than how does Opensips route the message?
>>>
>>> I've worked on this the last few days and below is an excerpt from my
>>> log files. For some reason the proxy server is not able to route the
>>> message to user2 therefore it sends a message to user1 changing the
>>> SIP header from 100 to 407(Proxy authorization needed).
>>>
>>>
>>> Oct 13 08:26:53 CL-T020-483CL /usr/local/sbin/opensips[19406]:
>>> DBG:tm:build_local: using FROM=<From:<sip:user1 at 72.55.133.123
>>> <mailto:sip%3Auser1 at 72.55.133.123>>;tag=232523
>>> >, TO=<To:<sip:user2 at 72.55.133.123
>>> <mailto:sip%3Auser2 at 72.55.133.123>>
>>> ;tag=9360cfebad69401b0dbd073e6bd6f131.188c
>>> >, CSEQ_N=<CSeq: 3>
>>> Oct 13 08:26:53 CL-T020-483CL /usr/local/sbin/opensips[19406]:
>>> incoming reply
>>> Oct 13 08:26:53 CL-T020-483CL /usr/local/sbin/opensips[19405]:
>>> DBG:core:parse_msg: SIP Request:
>>> Oct 13 08:26:53 CL-T020-483CL /usr/local/sbin/opensips[19406]:
>>> DBG:tm:t_should_relay_response: T_code=100, new_code=407
>>> Oct 13 08:26:53 CL-T020-483CL /usr/local/sbin/opensips[19405]:
>>> DBG:core:parse_msg: method: <ACK>
>>> Oct 13 08:26:53 CL-T020-483CL /usr/local/sbin/opensips[19406]:
>>> DBG:tm:t_pick_branch: picked branch 0, code 407 (prio=501)
>>> Oct 13 08:26:53 CL-T020-483CL /usr/local/sbin/opensips[19405]:
>>> DBG:core:parse_msg: uri: <sip:user2 at 72.55.133.123
>>> <mailto:sip%3Auser2 at 72.55.133.123>>
>>> Oct 13 08:26:53 CL-T020-483CL /usr/local/sbin/opensips[19406]:
>>> DBG:tm:is_3263_failure: dns-failover test: branch=0, last_recv=407,
>>> flags=2
>>>
>>>
>>> Could anyone give me some insights on how to go around this problem?
>>> Any help will be appreaciated.
>>>
>>> regards,
>>> james
>>>
>>> _______________________________________________
>>> Users mailing list
>>> Users at lists.opensips.org <mailto:Users at lists.opensips.org>
>>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>>>
>> ------------------------------------------------------------------------
>>
>> _______________________________________________
>> Users mailing list
>> Users at lists.opensips.org
>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>>
>
>
> --
> Bogdan-Andrei Iancu
> OpenSIPS Bootcamp
> 15 - 19 November 2010, Edison, New Jersey, USA
> www.voice-system.ro
>
>
> _______________________________________________
> Users mailing list
> Users at lists.opensips.org
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>
More information about the Users
mailing list