On 11/29/2016 10:36 AM, Nathan Ward wrote:
On 29/11/2016, at 9:26 PM, Răzvan Crainea <raz...@opensips.org> wrote:
On 11/29/2016 04:09 AM, Nathan Ward wrote:
On 29/11/2016, at 5:25 AM, Răzvan Crainea <raz...@opensips.org> wrote:
Hi, Nathan!
Have you tried calling b2b_init_request() with the "a" flag [1]?
[1] http://www.opensips.org/html/docs/modules/2.2.x/b2b_logic.html#id294010
Hi,
Yes I have. This passes through the authentication challenge headers in the
401/407, and then any subsequent response headers in the new INVITE.
b2b_logic/logic.c:1239 calls b2b_mark_todel, after forwarding the message -
because it is marked to_del, the ACK that the originator of the INVITE sends in
response to the 401/407 deletes the session.
I don’t understand how this flag is intended to be used, as there doesn’t seem to
be anything in the code to avoid setting to_del if the response is a 401/407 (or
anything >=300, actually) with auth challenge headers. All it does is pass
through the headers, but as it deletes the session, a new Call-ID is issued by
B2BUA when the authenticated invite is generated.
Hi, Nathan!
Yes, you are right, the flag simply passes the auth headers between the two
legs.
So you were saying that you were only using b2b for topology hiding? If so, why
not using directly the topology_hiding module[1]?
Sure that’s an option, however I would like to understand the B2BUA module
better.
What is the use case for passing authentication headers if the B2BUA instance
is shut down when a challenge (401/407) passes through?
Hi, Nathan!
From SIP perspective, the authentication mechanism is completely
independent from the message/call. That's why you can even use the same
credentials for different calls, as long as the nonce does not change.
So the auth server, does not have to map the credentials with a call-id.
Some servers might enforce this requirement - however, unfortunately
those will not work with opensips B2B.
From OpenSIPS perspective, when it receives the 401/407, the
transaction will be terminated, and the B2B will destroy the associated
entities. When the new INVITE comes in, it will create a completly new
entity, that will contain a different Callid (and will be seen as a new
leg). These two entities are not corelated at all in the current code.
That's why for now the current B2B implementation does not support your
scenario.
Best regards,
Răzvan Crainea
OpenSIPS Solutions
www.opensips-solutions.com
_______________________________________________
Users mailing list
Users@lists.opensips.org
http://lists.opensips.org/cgi-bin/mailman/listinfo/users