Hi,

Victor Gonzalez Chamorro wrote:

El 19/11/2010 10:18 a.m., Stefan Sayer escribió:
Hi,

Victor Gonzalez Chamorro wrote:
Hello,

Im new to sems, i was trying the ivr pin_collect example with refer.
All is working fine, except the refer message. I get a [onSipReply,
AmB2BSession.cpp:199] DEBUG: onSipReply: REFER ->  400 Bad Request
(Refer-to missing) (fwd=false) error.
I want to know if i have to explicitly put the Refer-to in before i call
self.redirect, if so what function should i call to do this

the REFER normally sent out is a custom call-flow REFER, where the server that takes the call just takes over the whole call with a Re-Invite (see Readme.pin_collect.txt).
Here you try to explain how a refer works or are you telling me how the example works?
As I'm sure you know, REFER is a well-defined method (rfc3515).

For load balancing conferences among SEMS servers, and sending incoming calls where the conference room is not known before the user has entered it (via keypad DTMF), a custom "transfer" call flow was invented, which works that way that the conference-bridge-SEMS sends a Re-INVITE to take over the call, and the pin-collect-SEMS just forgets the call (without sending BYE). For this to work, the conference-bridge-sems needs to know the dialog identifiers and the route set and the next hop. When this proprietary call flow was implemented in SEMS, unfortunately as method name "REFER" was chosen; now I would rather name it TRANSFER or something else. note that this call flow is not specified anywhere else than in the SEMS documentation, and I doubt that anyone else is using this method (even though it is really clever).


I've added (git master) another option as "REFER", where a standard REFER is sent in the dialog, there the Refer-To contains the user and the pin.
In the example from the last stable version to download, when i try the application, the refer message was sent out but without the Refer-to header. That's why i get a 400 error from the server i sent the message. I made some modifications to the IVR code and change the transfer function, to the refer function. In the original example code, the python wrapper call the tranfer function and not the refer. I didnt understand why was that.
the pin_collect application was meant to be working together with the SEMS conference application.

now in the git master version, you can select between the two types of REFER.


btw, it looks like you are routing the REFER back to the SEMS instance - I don't know if this is what you are actually trying to do.

Im routing the refer thru a Kamailio in the same machine, and then goes to a softphone in another machine

Stefan

I have another last question, could i make a transfer of a call without using the refer? just in case you know how

if you want to connect in back-to-back user agent mode, you can from python use the connectCallee function. SEMS will then send out an INVITE to the transfer target, and if that one answers, the caller will get a Re-INVITE with the SDP from the target. SEMS will stay in the signaling path in that scenario.

If you want to have SEMS stay in both signaling and media paths (and e.g. mix in something), you can either use DSM with mod_conference (see e.g. the quizconnect tutorial); or use the AmB2ABSession class from C++, see b2b_connect example, or callback application, or jukecall example.

using DSM and the low level signaling events (sipRequest/sipReply), and mod_dlg, you can also do standard 3PCC with SEMS, but this requires having a look at the call flows in detail, and possibly adding some functions to craft sip requests in mod_dlg.

Stefan



Thanks


_______________________________________________
Sems mailing list
[email protected]
http://lists.iptel.org/mailman/listinfo/sems







--
Stefan Sayer
VoIP Services Consulting and Development

Warschauer Str. 24
10243 Berlin

tel:+491621366449
sip:[email protected]
email/xmpp:[email protected]


_______________________________________________
Sems mailing list
[email protected]
http://lists.iptel.org/mailman/listinfo/sems

Reply via email to