Stefan Sayer wrote:
>> Overall, the sems web conference has been very predictable and useful 
>> asides from this problem - and the other problem that the dial-out 
>
> nice. out of curiosity, which version do you use?
>

sems-1.0.0

>> function assumes attendees are in the same call domain, which is not 
>> helpful in a generic conference.
> this can be fixed easily in the WebconferenceFactory::dialout 
> function. I have added a tracker item so this does not get lost - 
> hopefully I will have some time to implement missing features. If not, 
> I am always open for patches.
>

Here is a rough work-around that I am using - as a new function. I 
dropped the credentials stuff as I don't need it so it is not probably 
not suitable for patch.

void WebConferenceFactory::shortDialout(const AmArg& args, AmArg& ret)
{
  for (int i=0;i<4;i++)
    assertArgCStr(args.get(i));

  string room        = args.get(0).asCStr();
  string adminpin    = args.get(1).asCStr();
  string to          = args.get(2).asCStr();
  string from        = args.get(3).asCStr();

  // check adminpin
  rooms_mut.lock();
  ConferenceRoom* r = getRoom(room, adminpin);
  rooms_mut.unlock();
  if (NULL == r) {
      ret.push(1);
      ret.push("wrong adminpin");
      ret.push("");
      return;
  }

  DBG("Short dialout room '%s', from '%s', to '%s'\n",
      room.c_str(), from.c_str(), to.c_str());

  AmArg* a = new AmArg();
  a->setBorrowedPointer(new UACAuthCred("", "", ""));

  AmSession* s = AmUAC::dialout(room.c_str(), APP_NAME, "sip:" + to, 
"\"Conf " + room + "\" <sip:" + from +  ">",
                                    "sip:" + from, "<sip:" + to + ">", 
"", "", a);

  if (s) {
    string localtag = s->getLocalTag();
    ret.push(0);
    ret.push("OK");
    ret.push(localtag.c_str());
    newParticipant(room, localtag, to);
    updateStatus(room, localtag,
                 ConferenceRoomParticipant::Connecting,
                 "INVITE");
  }
  else {
    ret.push(1);
    ret.push("internal error");
    ret.push("");
  }
}

I had problems with WebConference if I used the abbreviated form of 
AmUAC::dialout so I included a null UACAuthCred. (I think that was 
because WebConference expects a value for UACAuthCred for deleting or 
searching? even though it is not used?)

Also, if there is a wishlist somewhere for new sems features, can I add 
a couple?

- subscribe/notify publishing methods similar to sipXtapi methods 
sipxPublisherCreate, sipxPublisherDestroy, sipxPublisherUpdate - i.e. A 
simple efficient, no fuss way of signalling BLF (or anything else) on a 
LAN without setting up external servers.

- support for hardware sound I/O - e.g. feed in sound from a sound card 
or copy audio to a speaker.

Thanks

Jeremy




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

Reply via email to