[Serusers] handling REFER/transfers in multihomed mode

Jeremy M. Dolan jmd at pobox.com
Tue Sep 28 09:18:22 CEST 2004


Hi all. Wondering the proper way to handle REFER requests, as I
haven't found much helpful documentation, and nothing in the way of
examples.

Our setup is basically:

Cisco 7960s <---> SER <---> Vega Gateway <---> PSTN
| Private 1918 net |  Internet  |

(The Cisco phones are on a 1918 private network, SER is running on the
IP gateway in multihomed mode, and the PSTN gateway is on the Internet)

SER works fine for normal calls, with force_rtp_proxy("FAII") or
force_rtp_proxy("FAEI") properly translating INVITE requests. However,
if the phone receives an inbound call from the PSTN, and tries to
transfer it, to either a local phone, or a remote number, this fails.
The Refer-To: header is set to number at 1918.ip.addr by the phone, e.g.,
5551212 at 10.0.0.1, and then SER relays this to the Vega gateway
unchanged. The Vega's INVITE attempt to that URI obviously gets
nowhere. I don't see any function in SER or its modules that address
this. All of the NAT and multihomed handling stuff seems only to
translate the RURI, Contact header, and SDP payloads, never the
Refer-To.

I've gotten transfer to work now for certain cases by basically
switching out the IP with a seemingly overbearing subst():
    subst('/^Refer-To:(.*)@1918.ip.addr/Refer-To:\1 at SERs.outside.ip/');
but this seems rather inelegant, to put it mildly. Isn't there another
way to handle this in SER?

Perhaps my relatively poor understanding of SIP at the protocol level
is causing the problem here. As I understand it, in the above
scenario, SER cannot "complete" the transfer request itself, so it
*must* forward the REFER further on in the call path, that being the
Vega here. It is not possible for SER to take the one half of the call
path, from the Vega to SER, and close it (with a BYE, or however), and
then connect the other half (which is still a live connection between
SER and the user) to the new user specified in Refer-To:. Am I correct
in thinking that this is how a SIP proxy (even one with RTP proxying
and NAT mangling capabilities) works? For this, is a B2BUA needed?

Though I hate to present any more info, especially without knowing
first if my assumptions are flawed, there is one more highly related
issue I may as well include here. We are relaying outbound calls
through Masergy's VoIP service. Their servers, however, do not support
REFER at all. What are our scenarios for being able to transfer (just
among phones inside the office) outbound calls that we've made through
Masergy? If I was correct in the preceding paragraph, SER itself could
not help here. Is there a recommended way to handle this?

Thank you in advance for ANY info in response to the above. Do any of
the SER developers, or third-party gurus, offer any sort of paid
support? I was surprised not to find anything under "services" on the
iptel.org site. We might be interested, now or in the near future, in
having someone who actually knows what they're doing take a little bit
more in-depth look at our setup, and hopefully head off all of the
problems we've undoubtedly set ourselves up for. :)

Thanks again,
Jeremy

-- 
Jeremy M. Dolan <mailto:jmd at pobox.com> <http://jmd.us/>
PGP: 1024D/3C68A1BA 9470 210C A476 FFBB 6D11  0223 0D1C ABFC 3C68 A1BA




More information about the sr-users mailing list