Good luck! I've spent countless hours on this one. There are several bugs in IOS which
affect REFER mesage processing. Basically the Cisco makes forwarding decisions based soley
on dial peers. So first off you must have unique enough dial peers to andle both REFER and
INVITEs. You said you have Cisco router(s) plural as gateways. That is where the REFER
message gets in trouble. With consultative call transfer if one call leg traverse the
first gateway and the second cal leg traverses the second gateway the first gateway must
know how to REFER the call to the second gateway. The only way for it know this is by 1)
matching the use rpart of the Refer-To header against a dial peer which has a
session-target which is the IP address of the second gateway.
Cisco claims you have a dummy, invalid IP address and they dial peer will fail. In failure
mode the router simply forwards the message to the IP address of the host art of the
Refer-To header. I cannot try this now because we took the chicken way out. We rebalanced
out load sharing algorithm to insure most transfers traverse the same gateway.
Consultative transfers where both call legs go through the same gatewya work.
Good luck!
_Steve
________________________________________
From: users-bounces(a)lists.openser.org [users-bounces(a)lists.openser.org] On Behalf Of
Thiago Maluf [malufrj(a)gmail.com]
Sent: Wednesday, June 04, 2008 7:03 PM
To: users(a)lists.openser.org
Subject: [OpenSER-Users] Openser working with REFER (Transfer)
Hi List,
I am research in Brazil University and in our system we have several
User Agents in SIP.
We have the openser working as Sip Proxy and Asterisk or Cisco Routers
as Gateway with PSTN or PBX.
We have too Hardphone Cisco IP Phone and Polycom IP Pphone and
Softphone X-Lite, Eyebeam and Ekiga.
Just now our system is working to all users, but I found one problem.
When the user, work with BlindTransfer* the call is transfered no problem.
But when the user (no matter if is Hardphone or Softphone) try
transfer** the call, it don't work.
In my OpenSER, when I receive one REFER without LOOSE_ROUTE I just end
the request.
While if this request have LOOSE_ROUTE I send this request to route
defined in dialog.
I would like if you can I help me, if I can insert one logical in
OpenSER to do it work.
is it possible?
Very thanks for everybody,
Thiago!
(!)
* BLINDTRANSFER: UA1 call to UA2 and when the call is established, UA1
for example send one request REFER to UA2 to this user call UA3. Then
UA2 hangup call with UA1, and make one call to UA3.
** TRANSFER: UA1 call to UA2 and when the call is established, UA1 for
example put this call in hold on, and make one call to UA3. When this
last call is established, UA1 send one request REFER to UA2 to get the
call with UA3. Then UA2 will talk with UA3, and UA1 is hangup its
calls.
--
----------------------------------------------------------------
THIAGO MALUF RESENDE
Consultor Voip e Programador WEB (Voip Developer and Web Developer)
Tel: +55 21 86042100
e-mail: malufrj(a)gmail.com
_______________________________________________
Users mailing list
Users(a)lists.openser.org
http://lists.openser.org/cgi-bin/mailman/listinfo/users