[OpenSIPS-Users] Transactional REGISTER processing with 2.1
Maxim Sobolev
sobomax at sippysoft.com
Mon Feb 20 04:23:37 EST 2017
Hi Razvan, this is the code from SER 2.0. There is no equivalent for
"s:digest_challenge" or "s:contact" AVPs as far as I can tell looking to
the code in question in OpenSIPS.
-Max
On Mon, Feb 20, 2017 at 12:25 AM Răzvan Crainea <razvan at opensips.org> wrote:
> Hi, Maxim!
>
> The code you are using now should do what you request. t_newtran() returns
> 0 for retransmissions, therefore for the second message (retransmission)
> that will run the script, t_newtran() will immediately absorb the message
> and return without executing any further instructions.
>
> Best regards,
>
> Răzvan Crainea
> OpenSIPS Solutionswww.opensips-solutions.com
>
> On 02/17/2017 09:15 PM, Maxim Sobolev wrote:
>
> P.S. python_exec("www_authenticate") does not do any magic here, it's
> just figures out the right domain to use based on some business rules and
> then calls www_authenticate() with that parameter.
>
> On Fri, Feb 17, 2017 at 11:12 AM, Maxim Sobolev <sobomax at sippysoft.com>
> wrote:
>
> Hi guys,
>
> We are underway to migrate from ancient SER-2.0.0 to more modern OpenSIPS
> and one of the question that is still in my TODO list is implementing
> transactional processing of the REGISTER requests. In the old SER we had
> something along those lines:
>
> route[3] {
> # Ensure that all incoming messages contain auth info
> xlog("L_INFO", "processing %rm received from %si:%sp");
> if (!t_newtran()) {
> sl_send_reply("500", "could not create transaction");
> break;
> };
> if (!python_exec("www_authenticate")) {
> xlog("L_INFO", "challenging %ct");
> if (is_avp_set("s:digest_challenge")) {
> append_to_reply("%$digest_challenge");
> };
> t_reply("401", "Unauthorized");
> break;
> };
> [....some more unrelated processing and checks...]
> xlog("L_INFO", "saving contact %ct into the database");
> save_noreply("location");
> if (is_avp_set("s:contact")) {
> append_to_reply("%$contact");
> };
> t_reply("$code", "$reason");
> }
>
> The idea here is to avoid possibly costly DB lookup and other checks on
> each possible re-transmit. What would be the proper way of doing this with
> the OpenSIPS 2.1? Or if it's not possible to replicate such scheme, what
> would be the best way to implement this which to get the change accepted
> into the OpenSIPS mainline?
>
> Any ideas, pointers, hints are greatly appreciated. Thanks in advance!
>
> -Maxim
>
>
>
>
> --
> Maksym Sobolyev
> Sippy Software, Inc.
> Internet Telephony (VoIP) Experts
> Tel (Canada): +1-778-783-0474
> Tel (Toll-Free): +1-855-747-7779
> Fax: +1-866-857-6942
> Web: http://www.sippysoft.com
> MSN: sales at sippysoft.com
> Skype: SippySoft
>
>
> --
Maksym Sobolyev
Sippy Software, Inc.
Internet Telephony (VoIP) Experts
Tel (Canada): +1-778-783-0474
Tel (Toll-Free): +1-855-747-7779
Fax: +1-866-857-6942
Web: http://www.sippysoft.com
MSN: sales at sippysoft.com
Skype: SippySoft
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.opensips.org/pipermail/users/attachments/20170220/ca71e835/attachment.html>
More information about the Users
mailing list