void SimpleRTC::onRemoteMessage(const std::string &remote, const std::vector<std::string>& msgBody) { if ( msgBody.size() == 2 && msgBody[0] == "call" && msgBody[1] == "media" ) { if ( stream_ == NULL && isCaller_ == false) { stream_ = new RtcStream(remote, factory_, capturer_, renderer_); stream_->SignalSessionDescription.connect(this, &SimpleRTC::OnLocalDescription); stream_->SignalIceCandidate.connect(this, &SimpleRTC::OnLocalCandidate); answerCall(); } } else if ( msgBody.size() == 2 && msgBody[0] == "call" && msgBody[1] == "ok" ) { stream_->SetupLocalStream(true, true, false); stream_->CreateOfferDescription(); } else if ( msgBody.size() == 2 && msgBody[0] == "call" && msgBody[1] == "dataok" ) { stream_->SetupLocalStream(false, false, true); stream_->CreateOfferDescription(); } else if ( msgBody.size() == 3 && msgBody[0] == "rtc" && msgBody[1] == "desc" ) { if ( stream_ != NULL ) { stream_->SetRemoteDescription( msgBody[2] ); if ( isCaller_ == false) { stream_->SetupLocalStream(true, true, false); stream_->CreateAnswerDescription(); } } } else if ( msgBody.size() == 3 && msgBody[0] == "rtc" && msgBody[1] == "cand" ) { stream_->SetRemoteCandidate(msgBody[2]); } }
void ChatForm::onAnswerCallTriggered() { qDebug() << "onAnswerCallTriggered"; audioInputFlag = true; audioOutputFlag = true; emit answerCall(callId); }
void ChatForm::onAnswerCallTriggered() { qDebug() << "onAnswerCallTriggered"; if (callConfirm) { delete callConfirm; callConfirm = nullptr; } audioInputFlag = true; audioOutputFlag = true; emit answerCall(callId); }
static DBusHandlerResult mking_signal_filter(DBusConnection *connection, DBusMessage *message, void *user_data) { DBusMessageIter arg; char *str; char *contents; if (dbus_message_is_signal(message,"com.asianux.pdaemon","call")) { if (!dbus_message_iter_init(message,&arg)) { fprintf(stderr,"Message has no Param\n"); } else if (dbus_message_iter_get_arg_type(&arg) != DBUS_TYPE_STRING) { g_printerr("Param is not string\n"); } else { dbus_message_iter_get_basic(&arg,&str); // app_agent_set_play(appAgent); cmdResult("拨打电话 dial",dial(str)); is_calling = TRUE; } } else if (dbus_message_is_signal(message,"com.asianux.pdaemon","hook")) { if (!dbus_message_iter_init(message,&arg)) { fprintf(stderr,"Message has no Param\n"); } else if (dbus_message_iter_get_arg_type(&arg) != DBUS_TYPE_STRING) { g_printerr("Param is not string\n"); } else { dbus_message_iter_get_basic(&arg,&str); cmdResult("挂机 hangup",handupCall()); send_panel_callinginactive(); is_calling = FALSE; } } else if (dbus_message_is_signal(message,"com.asianux.pdaemon","answer")) { printf("\n-------answer the call ------\n"); cmdResult("接听电话 answer call",answerCall()); is_calling = TRUE; } else if (dbus_message_is_signal(message,"com.asianux.pdaemon","reject")) { printf("\n---------reject the call ------\n"); cmdResult("拒听电话 reject call",rejectCall()); is_calling = FALSE; } else if (dbus_message_is_signal(message,"com.asianux.pdaemon","sms")) { if (!dbus_message_iter_init(message,&arg)) { fprintf(stderr,"Message has no Param\n"); } else if (dbus_message_iter_get_arg_type(&arg) != DBUS_TYPE_STRING) { g_printerr("Param is not string\n"); } else { dbus_message_iter_get_basic(&arg,&str); printf("Get phone number value:%s\n",str); dbus_message_iter_next(&arg); dbus_message_iter_get_basic(&arg,&contents); printf("get sms contents value;%s\n",contents); // sendmessage("send message",sendSM(contents,str)); sendSM(contents,str); sendSM(string(contents),string(str)); } } else if (dbus_message_is_signal(message,"com.asianux.pdaemon","fom")) { if (!dbus_message_iter_init(message,&arg)) { fprintf(stderr,"Message has no Param\n"); } else if (dbus_message_iter_get_arg_type(&arg) != DBUS_TYPE_STRING) { g_printerr("Param is not string\n"); } else { dbus_message_iter_get_basic(&arg,&str); printf("Get phone number value:%s\n",str); dbus_message_iter_next(&arg); dbus_message_iter_get_basic(&arg,&contents); printf("get sms contents value;%s\n",contents); // sendfom("send fom",sendSM(contents,str)); sendSM(contents,str); } } else if (dbus_message_is_signal(message,"com.asianux.pdaemon","register")) { if (!dbus_message_iter_init(message,&arg)) { fprintf(stderr,"Message has no Param\n"); } else if (dbus_message_iter_get_arg_type(&arg) != DBUS_TYPE_STRING) { g_printerr("Param is not string\n"); } else { dbus_message_iter_get_basic(&arg,&str); printf("Get phone number value:%s\n",str); dbus_message_iter_next(&arg); dbus_message_iter_get_basic(&arg,&contents); printf("get sms contents value;%s\n",contents); SendRegister("send register",sendSM(contents,str)); printf("---------------------------------------send register\n"); } } else if (dbus_message_is_signal(message,"com.asianux.pdaemon","extension")) { if (!dbus_message_iter_init(message,&arg)) { fprintf(stderr,"Message has no Param\n"); } else if (dbus_message_iter_get_arg_type(&arg) != DBUS_TYPE_STRING) { g_printerr("Param is not string\n"); } else { dbus_message_iter_get_basic(&arg,&str); printf("############Get extension value:%s\n",str); dialExtNumber(str); } } else if (dbus_message_is_signal(message,"com.asianux.pdaemon","read")) { //cmdResult("读取短信",readSM(UNREAD_SM)); } return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; }