Reputation: 581
I have been reading across multiple sources and I have a few concerns which I'm not sure is correct?
Consider a simple call flow as below of Alice ([email protected]) <-> Bob([email protected])
Given Alice has registered with 3 devices and bob has registered with 2 devices
Alice devices
1. [email protected]
2. [email protected]:43085
3. [email protected]:5060
Bob Devices
1. [email protected]
2. [email protected]:5060
Now coming to the call flow. Alice(from [email protected]
decides to call BOB.
when the call (from Alice to Bob) is made(in the first leg) would the Request - URI would be that of proxy or bob. [Ref] (https://www.quora.com/What-is-the-difference-between-request-URI-and-to-tag-in-SIP-request-messages)
Alice called from its device [email protected]
so we assume that contact header to be present in the SIP request. But when BOB enters its contact HEADER i.e [email protected]
in 200 OK response. Why does the route have to be directed to Proxy (ref picture)
why can't it be sent directly to the ALICE since the BOB knows about ALICE's location? since the request had the Alice Contact header.
Upvotes: 0
Views: 1304
Reputation: 1021
My answers:
When the dialog has become confirmed and (if) Alice and Bob know each other's contact address they can from there on, in that dialog, send new SIP requests directly to each other.
I hope that helps.
Upvotes: 2
Reputation: 555
Why can't the
200 OK
response be sent directly to the ALICE since the BOB knows about ALICE's location? Since the request had the Alice Contact header.
Actually, what you name the BOB is a registered device of user Bob into SIP registrar
for domain anc.com
.
If Bob-device sends directly the answer to Alice-device (i.e. contact-address
), the inbound-proxy will not be able to CANCEL
pending SIP INVITE
to the other Bob devices because the 200 ok
response is a trigger for the inbound proxy.
when the call (from Alice to Bob) is made(in the first leg) would the Request - URI would be that of proxy or bob?
With loose-routing that define routing the “right” way, the request-uri must be the target address like the user address (i.e.addres-of-record
) or a user device (i.e. contact-address
) or a tel:
e164 compatible address or a user GRUU
(not sure if this is all).
In your case, it must be bob user address ([email protected]) and NOT the proxy!
Upvotes: 1
Reputation: 161
Proxy could be of any type i.w. stateless/statefull/B2BUA. Proxy can maintain Invite transaction and to clear that transaction 200OK must traverse through that Proxy.
When proxy wants to receive response as well it will add it's own ip in VIA header. 200OK response from Bob will use VIA header to traverse same path as INVITE for response.
So, in you case Bob received INVITE with Via header something like(via: proxy; alice), so 200Ok will be sent to Proxy. Then proxy will remove it's own via and it will forward this to next via i.e. of Alice in this case.
And as Bucq mentioned, further requests can traverse directly for ex from ACK onwards.
Upvotes: 0