Thanks for the reply Alex! I really appreciate it.
I've been reading manuals & sip specs all day, and I think that I found my answer, and it really is an easy one. here's my own answer to my question, can you let me know if this sounds right?
When a message is send from a user agent (on the public internet) to my gatweway & then to the proxy (on a private network), the gateway will add a via on to the message. that's how open SER (or any other proxy) can send a response message back to user agent on the public internet via the gateway.
It's really the same thing as setting up a registrar, or any other kind of proxy/user agent that's going to communicate via a SBC of any kind. So, it that right? is that how the SIP via header is used?
I understand the part about registrations. We're not currently doing that in our network, we're using all static IP addressing. I plan on using registrations in the future. the gateway that I'm using can act as a session border controller, but it can also act as a class 4/5 switch (TDM or IP). so it's some serious overkill for what I want to do here. :o)
Thanks again for the reply,
--Doug
----- Original Message ---- From: Alex Balashov abalashov@evaristesys.com To: Doug McLetchie dougmcletchieatwork@yahoo.com Cc: users@lists.openser.org Sent: Wednesday, February 6, 2008 1:23:51 AM Subject: Re: [OpenSER-Users] newbie questions
Doug,
Doug McLetchie wrote:
For inbound calls (calls coming from another carrier to my big expensive gateway & destined for a specific PBX), I'd like my gateway to send the call to the proxy, who will determine which PBX to send the call to, and then send the call to to correct PBX via the Gateway. I don't understand how to set up OpenSER to send the call via the Gateway. If I provision the static ip address of the PBX in the proxy, won't it try to send directly to that IP address instead of sending it to the Gateway? I think that the feature that I'm looking for is something like an outbound proxy, for the proxy. (does that make sense?)
OpenSER can certainly do what you are trying to accomplish.
SIP routing is done by URI, which consists of a "user" part and a "domain" part. The "user" part is the number (or alphanumeric identification, in the case of pure-VoIP peering) and the "domain" part is the IP "place" at which the "user" part is reachable.
When you route a call to some URI, what you are really saying is, "Here, domain, you must know what to do with this 'user' part - i.e. have reachability information for it (a SIP contact bound from a registration, for example)."
A proxy by itself isn't enough. If you need to reach these PBXs, you clearly need to know how to reach them. This requires a SIP registrar somewhere, so that the PBXs can register against it and say, "Here, you can reach me at such and such IP and port." Or, I suppose, you can define these contacts statically with a database interface from the proxy, in which case you don't need to use a registrar.
I don't know what this Big Expensive Gateway is, but if it's something like a Session Border Controller, it should be able to forward SIP REGISTER requests to your proxy/registrar. Or do they register against the gateway?
Either way, you can perform this resolution with OpenSER.
The problem you *might* run into is sending the same logical call leg back to the Gateway. Depending on what it is, it may not like that and perceive a call routing loop, because the call that went through it to the proxy is the "same" call (in terms of SIP Call-ID, and other things that make up a logical call "leg") that is now being sent back around to it. This problem is often solved with the introduction of a back-to-back user agent which can re-originate a different call leg.