Subject: [Sip] SIP proto clarification needed.

From: Andrew Nesheret <[email-masked]>
Date: Mon, 19 Jun 2006 18:33:31 +0600

Hi.

I'm implementing class 5 SIP switch. The problem is to identify calling 
gateway (by it's INVITE request) which was previously registered on the 
switch (using REGISTER request). I see two options here.
1. By "From" header field.
2. By "Contact" header field.
In first case "From" header field must be equal to gateway's AOR. 
Disadvantage of this case is inability to pass real caller address.
Second case seems very reasonable to me. But, RFC 3261 not directly 
clarifies this situation.

I'm very sorry, if this already covered in some documents. If so, 
please, provide me a link.

-- 
------------------------------------------------------------------------
WBR, Andrew Nesheret *ICQ*: /10518066/
_______________________________________________
Sip mailing list  https://www1.ietf.org/mailman/listinfo/sip
This list is for NEW development of the core SIP Protocol
Use [email-masked] for questions on current sip
Use [email-masked] for new developments on the application of sip

---

From: Dean Willis <[email-masked]>
Date: Tue, 20 Jun 2006 00:43:24 -0500

On Jun 19, 2006, at 7:33 AM, Andrew Nesheret wrote:

> Hi.
>
> I'm implementing class 5 SIP switch. The problem is to identify  
> calling gateway (by it's INVITE request) which was previously  
> registered on the switch (using REGISTER request). I see two  
> options here.

sounds like you have several discrete pieces of functionality  
intertwingled, none of which do what you may need to do.

Why does the class 5 switch need to identify the calling gateway in  
an INVITE?

Does it make an authentication/authorization decision, apply  
different routing rules based on which gateway called, or what?

And how on earth are you getting a gateway to register? What is it  
registering? Every phone number it might possibly be able to reach?  
What does the REGISTER request have to do with a subsequent INVITE?

Most of our identity mechanisms are about expressing the identity of  
the PSTN caller behind the gateway. This is more or less what comes  
out in From:, P-Asserted-Identity, Remote-Party-ID, and so on.

--
Dean

---

From: Andrew Nesheret <[email-masked]>
Date: Tue, 20 Jun 2006 13:11:48 +0600

Hi.

Dean Willis wrote:
> Why does the class 5 switch need to identify the calling gateway in an 
> INVITE?
>
> Does it make an authentication/authorization decision, apply different 
> routing rules based on which gateway called, or what?
Exactly.
> What does the REGISTER request have to do with a subsequent INVITE?
Gateway registers own contacts for it's AOR like any other endpoint. But 
there is number of endpoints behind that GW. Active AOR (AOR with bound 
contacts) means that this gateway is _online_. Switch respectively 
configured to route number of destinations thru that GW (and possible 
some other GWs). And V-V switch allows calls from that destinations to 
came out of this GW.

So, while GW (or no matter what else) initiates the call, first i need 
to know which _registered_ entity acting now.
And second what is the number (SIP URI) of originating station.

Hope this clarifies something.

---

From: Dean Willis <[email-masked]>
Date: Tue, 20 Jun 2006 15:35:10 -0500

On Jun 20, 2006, at 2:11 AM, Andrew Nesheret wrote:

> Hi.
>
> Dean Willis wrote:
>> Why does the class 5 switch need to identify the calling gateway  
>> in an INVITE?
>>
>> registering? Every phone number it might possibly be able to  
>> reach? What does the REGISTER request have to do with a subsequent  
>> INVITE?
> Gateway registers own contacts for it's AOR like any other  
> endpoint. But there is number of endpoints behind that GW. Active  
> AOR (AOR with bound contacts) means that this gateway is _online_.  
> Switch respectively configured to route number of destinations thru  
> that GW (and possible some other GWs). And V-V switch allows calls  
> from that destinations to came out of this GW.
>
> So, while GW (or no matter what else) initiates the call, first i  
> need to know which _registered_ entity acting now.

No, but I'm more intrigued than ever.

The gateways I'm familiar with (cisco) either don't register  
anything, or they send a registration for each phone number reachable  
behind the gateway. There's no AOR for the gateway itself. What does  
it mean to send an INVITE to the gateway's AOR? Does the gateway  
respond with a 200 OK? If so, who are you talking to?

It sounds like you're sort of working backwards through registration  
to determine gateway reachability. If there is a contact for the  
gateway, you seem to be assuming the gateway is online and can be  
reached to reach the phone numbers that are (in some provisioning  
system) associated with the gateway. That's a novel use of  
registration, but highly inconsistent with the usual usage of  
registration. Most commonly, the registration interval is 3600  
seconds, so the presence of a contact doesn't tell you a gateway is  
online now, it tells you the gateway was online within the last hour.  
Some systems use a live "heartbeat" mechanism for determining real- 
time reachability.

Now, as for determining which gateway an INVITE is coming from: At  
its heart, this is an authentication question. Literally, answering  
"which gateway was that?" You might consider using the standard  
authentication mechanism for this. This would allow not only  
assertion "I claim to be gateway #1", but verification -- "I claim to  
be gateway #1, and I can prove it because I can present credentials."

--
Dean

---

From: Jonathan Rosenberg <[email-masked]>
Date: Tue, 20 Jun 2006 19:40:47 -0400

inline.

> some other GWs). And V-V switch allows calls from that destinations to 

This sounds like tgrep:

http://www.ietf.org/internet-drafts/draft-ietf-iptel-tgrep-07.txt

-Jonathan R.

-- 
Jonathan D. Rosenberg, Ph.D.                   600 Lanidex Plaza
Cisco Fellow                                   Parsippany, NJ 07054-2711
Cisco Systems
[email-masked]                              FAX:   (973) 952-5050
http://www.jdrosen.net                         PHONE: (973) 952-5000
http://www.cisco.com

---

From: Dean Willis <[email-masked]>
Date: Tue, 20 Jun 2006 22:15:53 -0500

On Jun 20, 2006, at 6:40 PM, Jonathan Rosenberg wrote:

> inline.
>
> Andrew Nesheret wrote:
>
>
>>>
>>> And how on earth are you getting a gateway to register? What is  
>>> it registering? Every phone number it might possibly be able to  
>>> reach? What does the REGISTER request have to do with a  
>>> subsequent INVITE?
>> Switch respectively configured to route number of destinations  
>> thru that GW (and possible some other GWs). And V-V switch allows  
>> calls from that destinations to came out of this GW.
>
> This sounds like tgrep:
>

Not the way I'm reading it. It seems more like we have a proposal for  
an AOR for "the gateway". The gateway registers a contact against the  
AOR. One might use such an AOR with something like an event package  
so that the gateway could report on utilization -- send a "SUBSCRIBE"  
to the gateway on the to-be-specified "gateway event package" and get  
NOTIFY messages talking about what the gateway is doing.

Now, assume a route provisioning system that knows about  
"[email-masked]" and "[email-masked]". It knows that both  
of these have a set of routes, which we might assume are completely  
overlapping (they route to the same destinations). If we get a call  
that we need to send to a destination in that route set, which  
gateway do we use? I believe the proposal is that we pick from the  
set of gateways that currently have a registered contact, on the  
assumption that a gateway that has a registered contact is more  
likely to be "live" than a gateway that has let its registrations  
expire. I think this is a clumsy way to figure out if a gateway is  
reachable, but it seems to be the intent of Andrew's system as I  
understand it.

But I think tgrep plus a heartbeat or liveness probe would probably  
be more effective.

--
Dean