Status 403 - You must register with a S-CSCF first

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,


I think I've found the culprit, at least in my case.

The problem was code that rewrote the Via header prior to sending a
SUBSCRIBE request. It was probably copied from reference pjsua app or some
other working pjsip client.


  if (acc->cfg.allow_via_rewrite && acc->via_addr.host.slen > 0) {
          pjsip_dlg_set_via_sent_by(dlg, &acc->via_addr, acc->via_tp);
  }


 When I removed that and disabled contact_rewrite:

    acc_cfg.allow_contact_rewrite = PJ_FALSE;

I was able to register just fine no matter the NAT type/setup. There was no
IP address change, Via header and Contact header matched out of the box. So
in my case it was not the fault of the OpenIMSCore despite previous
assumptions.

It is possible that you are suffering from the same problem. In any case,
check if you are not messing with the Via header somehow.

Regards,
Radek




2013/8/12 Gremaud Cyrill <cyrill.gremaud at hefr.ch>

> Hi Radoslaw,
>
> thanks a lot for your job and for your feedback. I will try your solution
> and post back my results.
>
> thank you
>
> cyrill gremaud
> ________________________________________
> De : pjsip [pjsip-bounces at lists.pjsip.org] de la part de
> pjsip-request at lists.pjsip.org [pjsip-request at lists.pjsip.org]
> Envoy? : jeudi 1 ao?t 2013 14:40
> ? : pjsip at lists.pjsip.org
> Objet : pjsip Digest, Vol 72, Issue 5
>
> Send pjsip mailing list submissions to
>         pjsip at lists.pjsip.org
>
> To subscribe or unsubscribe via the World Wide Web, visit
>         http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
> or, via email, send a message with subject or body 'help' to
>         pjsip-request at lists.pjsip.org
>
> You can reach the person managing the list at
>         pjsip-owner at lists.pjsip.org
>
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of pjsip digest..."
>
>
> Today's Topics:
>
>    1. Re: Status 403 - You must register with a S-CSCF first
>       (Rados?aw Szalski)
>
>
> ----------------------------------------------------------------------
>
> Message: 1
> Date: Thu, 1 Aug 2013 14:37:59 +0200
> From: Rados?aw Szalski <radoslaw.szalski@xxxxxxxxx>
> To: pjsip list <pjsip at lists.pjsip.org>
> Subject: Re: Status 403 - You must register with a S-CSCF
>         first
> Message-ID:
>         <CAFEhLu-ukX_zi=
> yOw6cLLfdKdvbk7Dw7i3kxLHjg7+vGfSPiJQ at mail.gmail.com>
> Content-Type: text/plain; charset="utf-8"
>
> Hi,
>
> I have found a viable workaround. Setting a contact explicitly, via
> force_contact (
>
> http://www.pjsip.org/pjsip/docs/html/structpjsua__acc__config.htm#a5dfdfba40038e33af95819fbe2b896f9
> ).
> You have to know your external IP address and either hard-code it in or
> implement some mechanism to discover it. I will later experiment with STUN
> servers and pjsip's support for STUN for NAT and external IP discovery. It
> might work even better than forcing the contact.
>
> It looks like this:
>
> acc_cfg.force_contact = pj_str("<sip:" USER"@" IP_ADDR  ":" PORT ";ob>");
>
>
> The important things are:
>
>
>    - you have to include ";ob" at the end. This is a "outbound"
>    parameter/extension. Lack of it caused my first attempt at
> force_contact to
>    fail and abandon this idea for along time...
>    - USER, IP_ADDR and PORT have to be the same as those found in Via
>    header. This is how OpenIMSCore checks for registration.
>
>
> I defined the port as follows:
>
> pjsua_transport_config cfg;
> pjsua_transport_config_default(&cfg);
> cfg.port = (pj_uint16_t) SIP_PORT;
> status = pjsua_transport_create(PJSIP_TRANSPORT_UDP, &cfg, NULL);
>
> Hope this helps!
> Radek
>
>
>
> 2013/7/18 Rados?aw Szalski <radoslaw.szalski at gmail.com>
>
> > Hi,
> >
> >
> > I am currently waiting 5 s, but that is just a magic number I do not have
> > any solid justification.
> >
> > At first, I though simply waiting for status code of last registration to
> > be (200 OK) would suffice, but it's not the case:
> >
> > pjsua_acc_info info;
> > pjsua_acc_get_info(acc_id, &info);
> >
> > while (test.status != 200) {
> >         pjsua_acc_get_info(acc_id, &info);
> >         // some usleep()
> > }
> >
> > After that I wait for the mentioned 5 s.
> >
> > ATM I don't have a better solution. I'll get back to you when I finish
> > what I'm currently working on.
> >
> >
> > 2013/7/18 Gremaud Cyrill <cyrill.gremaud at hefr.ch>
> >
> >> Hello Rados !
> >>
> >> Thank you for your reply. This problem is very strange. Actually, I have
> >> tried and tested your "tricky" solution which consists to send a second
> >> registration request (with the method pjsua_acc_set_registration(acc_id,
> >> PJ_TRUE) ) few seconds after the initial REGISTER request send by
> >> pjsua_acc_add(&acc_cfg, PJ_TRUE, &acc_id).
> >>
> >> How many second do you wait before sending the second REGISTER ?
> >> Sometimes, I wait 3 seconds and it works and sometimes I must waiting
> more
> >> because the response has always 2 bindings. This "tricky wait time"
> depends
> >> of which parameter(s) ?
> >>
> >> If I have more times, I will work on a better way to fix this problem.
> Do
> >> you have finding a better solution  ?
> >>
> >> thanks a lot. cyrill gremaud
> >>
> >>
> >> On Jul 17, 2013, at 9:48 PM, <pjsip-request at lists.pjsip.org>
> >>  wrote:
> >>
> >> > Send pjsip mailing list submissions to
> >> >       pjsip at lists.pjsip.org
> >> >
> >> > To subscribe or unsubscribe via the World Wide Web, visit
> >> >       http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
> >> > or, via email, send a message with subject or body 'help' to
> >> >       pjsip-request at lists.pjsip.org
> >> >
> >> > You can reach the person managing the list at
> >> >       pjsip-owner at lists.pjsip.org
> >> >
> >> > When replying, please edit your Subject line so it is more specific
> >> > than "Re: Contents of pjsip digest..."
> >> >
> >> >
> >> > Today's Topics:
> >> >
> >> >   1. Re: Status 403 - You must register with a S-CSCF first
> >> >      (Rados?aw Szalski)
> >> >
> >> >
> >> > ----------------------------------------------------------------------
> >> >
> >> > Message: 1
> >> > Date: Wed, 17 Jul 2013 21:48:14 +0200
> >> > From: Rados?aw Szalski <radoslaw.szalski@xxxxxxxxx>
> >> > To: pjsip list <pjsip at lists.pjsip.org>
> >> > Subject: Re: Status 403 - You must register with a S-CSCF
> >> >       first
> >> > Message-ID:
> >> >       <
> >> CAFEhLu9kOYSyQdJXdPMiztNHpdKfmeG-q4NQUPn+k46xgZi2jw at mail.gmail.com>
> >> > Content-Type: text/plain; charset="utf-8"
> >> >
> >> > Hi!
> >> >
> >> > I have exactly the same problem as you have. Here is my entry for
> >> > reference:
> >> >
> >>
> http://lists.pjsip.org/pipermail/pjsip_lists.pjsip.org/2013-May/016297.html
> >> .
> >> > Wasn't 100% sure it was a NAT problem back then.
> >> >
> >> >
> >> > Unfortunately I haven't found a reliable solution yet . Indeed, a
> second
> >> > registration works correctly (notice that the second time, only 1
> >> Contact
> >> > header is included in REGISTER request and it has the correct,
> external
> >> IP
> >> > address). That's the only lead I have atm.
> >> >
> >> > My current workaround is to send, after few seconds after the first, a
> >> > second REGISTER request using:
> >> >
> >>
> http://www.pjsip.org/pjsip/docs/html/group__PJSUA__LIB__ACC.htm#ga487960dea58d628d92fe4c9a083813de
> >> >
> >> > I am working on sending a the modified REGISTER request, containing
> only
> >> > the correct Contact header. It involves initializing a REGC structure,
> >> > setting up the headers and sending the request. This is possible after
> >> the
> >> > first registration when we know our external IP address as reported by
> >> the
> >> > IMS. Registering for the first time then immediately un-registering
> and
> >> > then sending a correct REGISTER request would eliminate the "magic"
> >> waiting
> >> > I mentioned before.
> >> >
> >> > I also think that the culprit might be the OpenIMSCore itself. I
> haven't
> >> > had time to dig through its configuration options and check them all
> >> > though. What I did test was
> >> >
> >>
> http://www.pjsip.org/pjsip/docs/html/structpjsua__acc__config.htm#a73b69a3a8d225147ce386e310e588285
> >> > setting
> >> > on 1 (legacy) - sends 2 simultaneous REGISTER requests instead of one
> >> with
> >> > 2 Contacts. It does not work unfortunately. IMS responds with "Unable
> to
> >> > Comply" and its database has to be reset.
> >> >
> >> >
> >> > Please let me/us know when you find a solution. I will report back
> with
> >> my
> >> > finding after I debug some more.
> >> >
> >> >
> >> >
> >> > 2013/7/17 Gremaud Cyrill <cyrill.gremaud at hefr.ch>
> >> >
> >> >>        Hello everybody,
> >> >>
> >> >> I'm trying to create a simple console application with PJSIP through
> an
> >> >> OpenIMSCore which allow Bob and Alice to communication with SIP
> Message
> >> >> (IM).
> >> >>
> >> >> When I start my application (one for Bob, one for Alice) on my
> >> computer,
> >> >> the registration is successful with the OpenIMSCore using the
> AKAv1-MD5
> >> >> authentication and I can send SIP message between Bob and alice.
> >> >>
> >> >> But if I start my application from a computer which is behind a NAT
> >> >> (simple CISCO NAT overload), I have 2 Register request per
> application
> >> (one
> >> >> for the private interface and another one for the public).
> >> >>
> >> >> The first Register request is for the private interface and the
> >> response
> >> >> (after the challenge) is 200 OK with a "expires = 300.
> >> >> The second Register request is for the public interface and the
> >> response
> >> >> (after the challenge) is 200 OK with a expires = 300 BUT the expire
> >> for the
> >> >> private is now a 0. (Wireshark says that there are 2 bindings)
> >> >>
> >> >> So, after that, I can't send IM message and I have the message
> "Status
> >> 403
> >> >> - You must register with a S-CSCF first".
> >> >>
> >> >> After 5 minutes, a new Register request is automatically send for the
> >> >> PUBLIC interface only and after the challenge I have the 200 OK with
> a
> >> >> expire = 300 and I have only 1 binding now and I can send IM message.
> >> >>
> >> >> Can you help me please ? I have search a lot but with no results.
> >> Thanks a
> >> >> lot
> >> >>
> >> >> cyrill gremaud
> >> >> _______________________________________________
> >> >> Visit our blog: http://blog.pjsip.org
> >> >>
> >> >> pjsip mailing list
> >> >> pjsip at lists.pjsip.org
> >> >> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
> >> >>
> >> > -------------- next part --------------
> >> > An HTML attachment was scrubbed...
> >> > URL: <
> >>
> http://lists.pjsip.org/pipermail/pjsip_lists.pjsip.org/attachments/20130717/c7d0ee2c/attachment.html
> >> >
> >> >
> >> > ------------------------------
> >> >
> >> > Subject: Digest Footer
> >> >
> >> > _______________________________________________
> >> > pjsip mailing list
> >> > pjsip at lists.pjsip.org
> >> > http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
> >> >
> >> >
> >> > ------------------------------
> >> >
> >> > End of pjsip Digest, Vol 71, Issue 86
> >> > *************************************
> >>
> >>
> >> _______________________________________________
> >> Visit our blog: http://blog.pjsip.org
> >>
> >> pjsip mailing list
> >> pjsip at lists.pjsip.org
> >> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
> >>
> >
> >
> -------------- next part --------------
> An HTML attachment was scrubbed...
> URL: <
> http://lists.pjsip.org/pipermail/pjsip_lists.pjsip.org/attachments/20130801/f2d12ade/attachment.html
> >
>
> ------------------------------
>
> Subject: Digest Footer
>
> _______________________________________________
> pjsip mailing list
> pjsip at lists.pjsip.org
> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
>
>
> ------------------------------
>
> End of pjsip Digest, Vol 72, Issue 5
> ************************************
>
> _______________________________________________
> Visit our blog: http://blog.pjsip.org
>
> pjsip mailing list
> pjsip at lists.pjsip.org
> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.pjsip.org/pipermail/pjsip_lists.pjsip.org/attachments/20130826/680eeae0/attachment-0001.html>


[Index of Archives]     [Asterisk Users]     [Asterisk App Development]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [Linux API]
  Powered by Linux