Create conference call

May 14, 2013 at 1:20 PM
I'm using the julmar ITAPI3 library and am trying to create a conference call using c#. I am able to make and receive calls, but haven't managed to set up a conference call. The pabx being used does support conference calls, as does the tsp (opentsp).
            try
            {
                TCall call1 = newCall(addr42, "36");            
                TCall call2 = newCall(addr42, "30");

                call1.Connect(false);
            
                call1.Conference(call2, true);
                call2.Finish(FINISH_MODE.FM_ASCONFERENCE);
            }
            catch (Exception x)
            {
            }
Call1 connects successfully, but when execution reaches the line "call1.Conference(call2, true);", it fires an exception. Is there a way to identify what the exceptions mean?

Does anyone have any insight about how conference are ought to be made programatically?
May 14, 2013 at 1:53 PM
Conferences are tricky in TAPI. It's all based on how the TSP decided to implement it - there was no standard way to setup or manage a conference. Instead, Microsoft/Intel defined a set of conference APIs and then left it up to the TSP to decide which ones were necessary and the order to call them in.

Some allow you to use an existing call, but you had to put it on hold first, some require that you setup the conference up front, some allow you to dial two calls and then create the conference between them. Check the documentation on the TSP to see exactly what you need to do.

For the exception, check the ex.Message and see what the error code is - again you will likely need to consult your TSP documentation to see what the error code really means.

mark

May 14, 2013 at 2:25 PM
Thanks for the reply Mark!
I was told I need to: "make first a master and then you invite others in". But since the julmar library allows to add calls rather than invite users (phone addresses), I'm not quite sure how to do that programatically.
I tried putting the connected call 'call1' on hold, but when I then tried to set up the conference, I got the exception: "Operation not permitted in current call state.\r\n"

Seems like it's a lot of trial and error issue as the tsp documentation does not offer a lot of info about the subject.
May 14, 2013 at 4:11 PM
You just need to find the specific TAPI calls you need to make. The ATAPI library is just a light wrapper over the TAPI calls - all of them are exposed. For example, sometimes you need to call linePrepareAddToConference, sometimes you don't. Some providers need lineSetupConference, some don't. The fact that you are getting Operation not permitted indicates you are missing a required step for your TSP.

Conferences were always messy because there was no mandated workflow for them (it's hardware specific). That kind of throws off the whole "write once works with all" idea of TAPI. Personally, I always found it helpful to use the TAPI browser but it appears to not be shipped with the SDK anymore which is really too bad. You might try the TAPI softphone on www.julmar.com to see if you can get a conference going with that.

Yes, it's a lot of trial and error - TSP vendors are often very light on docs :-(

Mark Smith

[email removed] | @marksm | 214-774-4749 | www.julmar.com/blog/mark