123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144 |
- /*
- * CallingAPI.cpp
- *
- * Created on: 2021年12月10日
- * Author: Admin
- */
- #include "utilities.h"
- #include "utils/Log.h"
- #include "string.h"
- #include "sip_config.h"
- #include "storage/StoragePreferences.h"
- #include "sip_config.h"
- #include <entry/EasyUIContext.h>
- #include <mutex>
- #include "base/strings.hpp"
- #include "base/base.hpp"
- #include "utilities.h"
- #include "base/time.hpp"
- #include "base/strings.hpp"
- #include "base/prefs.hpp"
- #include "base/json_object.h"
- #include "edge/ip_table.h"
- #include "core/jhws.h"
- #include "security/SecurityManager.h"
- #include "zkaudio.h"
- /**
- * 仅用于测试,默认不发送视频
- */
- void TelephoneAutoTransmitVideo(bool transmit);
- std::string GetDeviceUid();
- static std::mutex telephone_mutex;
- static voip::Telephone* telephone = NULL;
- voip::Telephone* GetTelephone() {
- std::lock_guard<std::mutex> lock(telephone_mutex);
- if (telephone != NULL) {
- return telephone;
- }
- voip::Configuration conf;
- #if 0
- std::string password = StoragePreferences::getString(SIP_REG_PASSWORD,
- SIP_REG_PASSWORD_DEFAULT);
- conf.id_uri = "sip:RM-1-1-1-1-1-1@jhws.top;transport=tcp";
- // conf.id_uri = "sip:RM-414-1-1-1-1-7@test.jhws.top";
- conf.server_uri = "sip:test.jhws.top";
- // conf.door_uri = "sip:OD-414-1-1-1-0-2@jhws.top";
- conf.user_name = "RM-1-1-1-1-1-1";
- conf.password = password;
- conf.port = 58583;
- #else
- std::string domain = StoragePreferences::getString(SIP_REG_DOMAIN,
- SIP_REG_DOMAIN_DEFAULT);
- std::string number = StoragePreferences::getString(SIP_REG_ACCOUNT,
- SIP_REG_ACCOUNT_DEFAULT);
- std::string password = StoragePreferences::getString(SIP_REG_PASSWORD,
- SIP_REG_PASSWORD_DEFAULT);
- int port = StoragePreferences::getInt(SIP_REG_PORT, SIP_REG_PORT_DEFAULT);
- // conf.id_uri = URI(number);
- conf.id_uri = URI(number, domain);
- conf.server_uri = base::format("sip:%s:%d", domain.c_str(), port);
- // conf.server_uri = "sip:new-sip.jhws.top:58583";
- conf.user_name = number;
- conf.password = password;
- conf.enable_ice = StoragePreferences::getBool(SIP_ENABLE_ICE, false);
- std::string stun_server =
- base::trim(StoragePreferences::getString(SIP_STUN_TURN_SERVER, ""));
- conf.stun_server = stun_server;
- conf.turn_server = stun_server;
- // conf.user_agent = "JHCloud-linux-i1.1.0";
- // conf.headers["SID"] = GetDeviceUid();
- // conf.headers["CID"] = "jhylf14988-com.jhws";
- // conf.headers["JWT"] = StoragePreferences::getString(SIP_JHWS_TOKEN, "");
- // LOGD("deviceuid: %s", GetDeviceUid().c_str());
- LOGD("id_url: %s", conf.id_uri.c_str());
- LOGD("server_url: %s", conf.server_uri.c_str());
- LOGD("user_name: %s", conf.user_name.c_str());
- LOGD("password: %s", conf.password.c_str());
- LOGD("user_agent: %s", conf.user_agent.c_str());
- #endif
- bool enable_video = StoragePreferences::getBool(SIP_ENABLE_VIDEO, true);
- conf.auto_transmit_video_to_remote = enable_video;
- telephone = new voip::Telephone(conf);
- //设置消回音、增益等参数
- base::AcousticEchoCancellater::Configuration aec_conf;
- aec_conf.sample_rate = 8000; //固定8K
- aec_conf.nearend_channel = 1;
- aec_conf.farend_channel = 1;
- aec_conf.comfort_noise_enable = 0;
- base::AudioProcessChain::Configuration apc_conf;
- apc_conf.number_of_channels = 1;
- apc_conf.sample_rate = 8000; //固定8K
- apc_conf.anr.enable = 1; //降低噪音
- // apc_conf.eq.enable = 1;
- apc_conf.agc.enable = 1;
- for (int i = 0; i < array_length(apc_conf.eq.gain_db); ++i) {
- //调节EQ,使发送给对方的声音音量更大
- // apc_conf.eq.gain_db[i] = 10;
- }
- zk_audio_input_set_volume_native(0, 0);
- zk_audio_input_set_volume_native(1, 12);
- zk_audio_output_set_volume_native(15);
- // telephone->SetInputAecApcConfig(aec_conf, apc_conf);
- return telephone;
- }
- void ReleaseTelephone() {
- std::lock_guard<std::mutex> lock(telephone_mutex);
- if (telephone != NULL) {
- deleteptr(&telephone);
- }
- }
- std::string GetVersion(){
- return "1.0.0";
- }
- int GetVersionNo() {
- return 3;
- }
- std::string GetDeviceUid() {
- unsigned char devID[16];
- int ret = SECURITYMANAGER->getDevID(devID);
- if (ret <= 0) {
- return "";
- }
- std::string str;
- for (int i = 0; i < ret; ++i) {
- str += base::format("%02X", devID[i]);
- }
- return str;
- }
|