At 2:34 PM +0100 1/20/03, Jiri Kuthan wrote:
At 08:41 PM 1/19/2003, John Todd wrote: [...]
Problem: My "iconnecthere.com" account is a username/password protected account which (of course) requires a UA at my side of the connection. To forward calls from the various phones in the house, I would need to have something re-write my username/password requests on the fly when they are sent out to the iconnecthere.com SIP proxies/gateways. My first assumption is that I'll need a (sigh) B2BUA to act as a gateway, running (for convenience) on the same UNIX platform as ser. After thinking about it for a while, I am uncertain if that is required, but at this point I can't determine what I need to do.
If you wish to authenticate with iconnect, configure iconnect credentials in you end-device, that's it. There are devices too (like Cisco 7960 or snom) that can handle multiple SIP accounts too, if you need that. That's imho simpler than inserting a middle-man authenticating on your behalf.
Yes, I understand that mapping a single end device works; I had that working in a few seconds, and I understand that process. However, my goal is not to have a single device that is mapped to a single service. I'd like to have ser make intelligent decisions on call routing, using the iconnecthere.com account gateway as one of a number of different destinations for calls to land from any of the six devices in my house. (with "my house" being a demo for a small office environment)
I would appreciate hints on:
a) Wether I need a B2BUA at all, and if not, what config options should I be looking at in ser?
see above -- maybe I missed some aspect of your scenario, but I do not currently see why you should need B2BUA. ser is not a B2BUA and cannot be configured to act so. That would take writing new code.
I think there is a minor misunderstanding, which is probably due to my poor explanation.
Understood that ser is not a B2BUA. My goal is to re-write the calls to a B2BUA that is statically mapped to the iconnecthere.com service as a "portal" to my account there. (that is, of course, if I even need a B2BUA.)
Theoretical outbound call process:
Start 1) Handset picked up in my house on one of the ATA-186 units. 2) User dials 1-650-555-1212 3) Call is referred to ser process running on system in my house 4) Ser examines call like this: a) Is the call bound for an extension elsewhere in the house? If yes, re-route call to that extension. Break. If no, proceed. a) Is the call bound for a 1-503-xxx-xxxx number? If yes, then send to local 2610 gateway into the 503 area code. Break. If no, proceed. b) Is the call bound for a 1-301-xxx-xxxx or 1-410-xxx-xxxx number? If yes, then send to a Cisco 3640 with PRI interface located in Maryland, local to those area codes. Break. If no, proceed. d) Send call to iconnecthere.com, using my "username" and "password" credentials for the single account I have at their service. Break. End
To use IP terminology, the iconnecthere.com account would be my "default route" when no other specific route is known.
My problem is part "d", where I am uncertain how to refer a call out to a service that is expecting a UA, with a different username and password than what I have on my local ATA-186. ser has the ability to alter the username and password on a pass-through, but is that what I'm looking for? I can't wrap my head around that concept when working with a system that expects a UA. Do I send the call to a B2BUA after step 5? Is there some way of re-writing the credentials within ser?
Again, if I do need a B2BUA, what would anyone suggest for a package that runs in a non-Java environment?
Additionally, inbound calling through a similar service would
have to also come in via the same mechanism, with a REGISTER request being sent by the B2BUA and all subsequent calls being routed through the SER proxy.
as said, phones can register with and receive calls from servers without b2bua functionality.
PS: I'd appreciate any open-source hints on how to get an ATA-186 (v2.15) running behind NAT with ser on the "outside" of the NAT, without statically configuring the "NAT" address on the ATA-186 every time the outside address changes. Lots of keyword matches found on Google, but very few clues to be scraped from the resulting documents as to "how" do it from the server side.
http://www.iptel.org/phpBB/viewtopic.php?topic=28&forum=1&0 particularly, the second link mentions how one can set up advertising the public address in ATA's signaling. I hope we will add some more details in there.
Yes, I'd seen this in the Cisco documentation, but as I mention in the question I'm looking for how to manage NAT addressed UA's where the external IP address changes on a very regular basis. The link above only seems to discuss how one can configure an ATA-186 to "hold" an external address by sending periodic packets through the translation; this doesn't touch on how one would get a system to work correctly after initial activation without manual intervention.
The "via" header (and related rport extension) seems like the solution to this problem, but does ser do the "right thing" with those data? That is discussed a bit lower in the document under the heading "Receiver-tagged VIA header ". I could find no reference to it in the documentation for ser, and a brief test with NAT addressed devices did not display successful results when the appropriate bit flag was set in the ATA-186. By examining the source code, I do find that some features of the "received=" header are implemented in ser, but I am unsure of their exact use and I find no mention in the source of "rport" which has been discussed in other threads as a key to NAT RTP session mapping.
JT