xmlrpc_value* AddConferenceToken(xmlrpc_env *env, xmlrpc_value *param_array, void *user_data) { UTF8Parser parser; MCU *mcu = (MCU *)user_data; MultiConf *conf = NULL; //Parseamos int confId; char *str; xmlrpc_parse_value(env, param_array, "(is)", &confId, &str); //Comprobamos si ha habido error if(env->fault_occurred) xmlerror(env,"Fault occurred\n"); //Parse string parser.Parse((BYTE*)str,strlen(str)); //Obtenemos la referencia if(!mcu->GetConferenceRef(confId,&conf)) return xmlerror(env,"Conference does not exist"); //La borramos bool res = conf->AddBroadcastToken(parser.GetWString()); //Liberamos la referencia mcu->ReleaseConferenceRef(confId); //Salimos if(!res) return xmlerror(env,"Could not add pin to broadcast session\n"); //Devolvemos el resultado return xmlok(env); }
xmlrpc_value* MediaGatewaySetMediaBridgeOutputToken(xmlrpc_env *env, xmlrpc_value *param_array, void *user_data) { UTF8Parser parser; MediaGateway *mediaGateway = (MediaGateway *)user_data; //Parseamos int sessionId; char *str; xmlrpc_parse_value(env, param_array, "(is)", &sessionId, &str); //Comprobamos si ha habido error if(env->fault_occurred) return 0; //Parse string parser.Parse((BYTE*)str,strlen(str)); //La borramos bool res = mediaGateway->SetMediaBridgeOutputToken(sessionId,parser.GetWString()); //Salimos if(!res) return xmlerror(env,"Could not set output token to bridge session\n"); //Devolvemos el resultado return xmlok(env); }
//CreateConference xmlrpc_value* CreateConference(xmlrpc_env *env, xmlrpc_value *param_array, void *user_data) { MCU *mcu = (MCU *)user_data; MultiConf *conf = NULL; UTF8Parser tagParser; //Parseamos char *str; int queueId = 0; xmlrpc_parse_value(env, param_array, "(si)", &str, &queueId); //Comprobamos si ha habido error if(env->fault_occurred) { //Try with old parameters xmlrpc_parse_value(env, param_array, "(s)", &str); //Comprobamos si ha habido error if(env->fault_occurred) //Send errro xmlerror(env,"Fault occurred\n"); } //Parse string tagParser.Parse((BYTE*)str,strlen(str)); //Creamos la conferencia int confId = mcu->CreateConference(tagParser.GetWString(),queueId); //Si error if (!confId>0) return xmlerror(env,"No se puede crear la conferencia"); //Obtenemos la referencia if(!mcu->GetConferenceRef(confId,&conf)) return xmlerror(env,"Conferencia borrada antes de poder iniciarse\n"); //La iniciamos int res = conf->Init(); //Liberamos la referencia mcu->ReleaseConferenceRef(confId); //Salimos if(!res) return xmlerror(env,"No se ha podido iniciar la conferencia\n"); //Devolvemos el resultado return xmlok(env,xmlrpc_build_value(env,"(i)",confId)); }
xmlrpc_value* CreateParticipant(xmlrpc_env *env, xmlrpc_value *param_array, void *user_data) { MCU *mcu = (MCU *)user_data; MultiConf *conf = NULL; UTF8Parser parser; //Parseamos int confId; int mosaicId; char *name; int type; xmlrpc_parse_value(env, param_array, "(iisi)", &confId,&mosaicId,&name,&type); //Comprobamos si ha habido error if(env->fault_occurred) xmlerror(env,"Fault occurred\n"); //Obtenemos la referencia if(!mcu->GetConferenceRef(confId,&conf)) return xmlerror(env,"Conference does not exist"); //Parse string parser.Parse((BYTE*)name,strlen(name)); //La borramos int partId = conf->CreateParticipant(mosaicId,parser.GetWString(),(Participant::Type)type); //Liberamos la referencia mcu->ReleaseConferenceRef(confId); //Salimos if(!partId) return xmlerror(env,"No se ha podido a�adir el participante a la conferencia\n"); //Devolvemos el resultado return xmlok(env,xmlrpc_build_value(env,"(i)",partId)); }
xmlrpc_value* MediaGatewayCreateMediaBridge(xmlrpc_env *env, xmlrpc_value *param_array, void *user_data) { UTF8Parser nameParser; MediaGateway *mediaGateway = (MediaGateway *)user_data; MediaBridgeSession *session = NULL; //Parseamos char *str; xmlrpc_parse_value(env, param_array, "(s)", &str); //Parse string nameParser.Parse((BYTE*)str,strlen(str)); //Creamos la sessionerencia int sessionId = mediaGateway->CreateMediaBridge(nameParser.GetWString()); //Obtenemos la referencia if(!mediaGateway->GetMediaBridgeRef(sessionId,&session)) return xmlerror(env,"Session deleted before inited\n"); //Si error if (!sessionId>0) return xmlerror(env,"Could not create session"); //La iniciamos bool res = session->Init(); //Liberamos la referencia mediaGateway->ReleaseMediaBridgeRef(sessionId); //Salimos if(!res) return xmlerror(env,"Could not start bridge\n"); //Devolvemos el resultado return xmlok(env,xmlrpc_build_value(env,"(i)",sessionId)); }
xmlrpc_value* CreatePlayer(xmlrpc_env *env, xmlrpc_value *param_array, void *user_data) { MCU *mcu = (MCU *)user_data; MultiConf *conf = NULL; UTF8Parser parser; //Parseamos int confId; int privateId; char *name; xmlrpc_parse_value(env, param_array, "(iis)", &confId,&privateId,&name); //Comprobamos si ha habido error if(env->fault_occurred) xmlerror(env,"Fault occurred\n"); //Obtenemos la referencia if(!mcu->GetConferenceRef(confId,&conf)) return xmlerror(env,"Conference does not exist"); //Parse string parser.Parse((BYTE*)name,strlen(name)); //La borramos int playerId = conf->CreatePlayer(privateId,parser.GetWString()); //Liberamos la referencia mcu->ReleaseConferenceRef(confId); //Salimos if(!playerId) return xmlerror(env,"Could not create player in conference\n"); //Devolvemos el resultado return xmlok(env,xmlrpc_build_value(env,"(i)",playerId)); }