voip 相关问题

互联网协议语音(VoIP)是用于通过诸如因特网的因特网协议(IP)网络传送语音通信和多媒体会话的互联网技术,通信协议和传输技术家族之一。 VoIP协议可以进一步细分为信令和媒体协议。信令协议用于建立VoIP会话,而媒体协议承载实际的语音流量。

需要通过互联网将我的 SIM 电话转接至另一部手机

我需要一个应用程序或任何东西,可以让我收到的电话通过互联网自动转发到另一部手机。问题是我在国外时无法接听电话...

回答 1 投票 0

同一用户的 VoIP 多个端点?

VoIP 新手,所以如果我遗漏了一个明显的答案,请原谅我:我可以在同一个 VoIP 用户 ID 上拥有多个端点吗,就像固定电话有多个分机一样?如果有的话有...

回答 1 投票 0

通过 SIPP 进行 SIP 负载测试

我想使用 Sipp 工具测试 oracle acme 数据包 SBC 上的负载。 Sipp 已安装在 ubuntu 16.04 服务器上。需要用于负载测试的示例脚本。我们需要编辑任何 .xml 文件吗? 需要发给我...

回答 1 投票 0

将 G.723.1 字节数组转换为音频文件

我有 G.723.1 录音的二进制数据(24 字节帧,6.3kbit),没有任何容器(例如 wav、ogg 等),只有数据。 我将其保存到 .dat 文件并尝试使用 ffmpeg 进行转换: ffmpeg.exe -i

回答 1 投票 0

如何创建VoIP推送制作证书?

我想创建一个用于生产的 VoIP 证书,但它似乎不起作用。 这就是我所做的: 在developer.apple.com上为VoIP创建了一个新的生产证书,并带有相应的...

回答 1 投票 0

Android java中如何接收蓝牙耳机播放暂停事件

如何在我的 VOIP 应用程序中接收蓝牙颈带播放暂停事件? 我在应用程序中实现了下面的广播接收器。 清单文件 如何在我的 VOIP 应用程序中接收蓝牙颈带播放暂停事件? 我在应用程序中实现了下面的广播接收器。 清单文件 <uses-permission android:name="android.permission.BLUETOOTH" /> <uses-permission android:name="android.permission.BLUETOOTH_CONNECT" /> <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> <receiver android:name=".MediaButtonReceiver" android:exported="true" android:priority="10000" > <intent-filter > <action android:name="android.intent.action.MEDIA_BUTTON" /> </intent-filter> </receiver> public class MediaButtonReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { android.util.Log.d("TAG", "Bluetooth onPlay: "+intent.getAction()); if (Intent.ACTION_MEDIA_BUTTON.equals(intent.getAction())) { KeyEvent event = intent.getParcelableExtra(Intent.EXTRA_KEY_EVENT); if (event != null && event.getAction() == KeyEvent.ACTION_DOWN) { int keyCode = event.getKeyCode(); if (keyCode == KeyEvent.KEYCODE_MEDIA_PLAY || keyCode == KeyEvent.KEYCODE_MEDIA_PAUSE) { // Handle play/pause event } } } } } 并像这样注册到调用活动 MediaButtonReceiver r = new MediaButtonReceiver(); registerReceiver(r, new IntentFilter(Intent.ACTION_MEDIA_BUTTON)); 并且还在应用程序中的广播接收器下面实现了 public class BluetoothHeadsetReceiver extends BroadcastReceiver implements BluetoothProfile.ServiceListener { private static final String TAG = "BluetoothHeadsetReceiver"; private BluetoothHeadset bluetoothHeadset; @Override public void onServiceConnected(int profile, BluetoothProfile proxy) { if (profile == BluetoothProfile.HEADSET) { bluetoothHeadset = (BluetoothHeadset) proxy; Log.d(TAG, "Bluetooth Headset connected"); } } @Override public void onServiceDisconnected(int profile) { if (profile == BluetoothProfile.HEADSET) { bluetoothHeadset = null; Log.d(TAG, "Bluetooth Headset disconnected"); } } @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); Log.d(TAG, "Bluetooth Headset onReceive : "+action); if (BluetoothHeadset.ACTION_CONNECTION_STATE_CHANGED.equals(action)) { int state = intent.getIntExtra(BluetoothHeadset.EXTRA_STATE, BluetoothHeadset.STATE_DISCONNECTED); if (state == BluetoothHeadset.STATE_CONNECTED) { Log.d(TAG, "Bluetooth Headset connected"); } else if (state == BluetoothHeadset.STATE_DISCONNECTED) { Log.d(TAG, "Bluetooth Headset disconnected"); } } else if (BluetoothHeadset.ACTION_AUDIO_STATE_CHANGED.equals(action)) { int state = intent.getIntExtra(BluetoothHeadset.EXTRA_STATE, BluetoothHeadset.STATE_AUDIO_DISCONNECTED); if (state == BluetoothHeadset.STATE_AUDIO_CONNECTED) { Log.d(TAG, "Bluetooth Headset audio connected"); // Handle button click events or other actions here } else if (state == BluetoothHeadset.STATE_AUDIO_DISCONNECTED) { Log.d(TAG, "Bluetooth Headset audio disconnected"); } }else{ Log.d(TAG, "Bluetooth Headset onReceive else : "); } } public void register(Context context) { BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); if (bluetoothAdapter != null) { bluetoothAdapter.getProfileProxy(context, this, BluetoothProfile.HEADSET); IntentFilter filter = new IntentFilter(); filter.addAction(BluetoothHeadset.ACTION_CONNECTION_STATE_CHANGED); filter.addAction(BluetoothHeadset.ACTION_AUDIO_STATE_CHANGED); context.registerReceiver(this, filter); } else { Log.e(TAG, "Bluetooth is not supported on this device"); } } public void unregister(Context context) { context.unregisterReceiver(this); if (bluetoothHeadset != null) { BluetoothAdapter.getDefaultAdapter().closeProfileProxy(BluetoothProfile.HEADSET, bluetoothHeadset); } } } 在调用 Activity OnCreate() 方法中注册以下代码。 MediaButtonReceiver r = new MediaButtonReceiver(); registerReceiver(r, new IntentFilter(Intent.ACTION_MEDIA_BUTTON)); if(gc.hasBTPermission(this, ConstantStrings.BLUETOOTH_PERMISSION)) { if (BluetoothManager.getInstance().isBluetoothHeadsetAvailable()) { headsetReceiver = new BluetoothHeadsetReceiver(); headsetReceiver.register(this); BluetoothManager.getInstance().initBluetooth(); } } 但不接收蓝牙耳机播放,暂停点击事件仅接收应用程序中的蓝牙连接和断开事件。 我想基于蓝牙点击事件呼叫接受和挂断呼叫,但不在应用程序中接收事件。 蓝牙 HID 配置文件/服务始终由设备的底层操作系统处理。只需订阅操作系统的关键事件即可。在 Android 中,应用程序可以通过覆盖 MediaSession.Callback.onMediaButtonEvent(Intent) 来覆盖默认行为。在这种情况下,应用程序可以/需要自行处理所有 API 细节。

回答 1 投票 0

全新安装 Callkit iOS 时启动呼叫事务总是失败

我正在使用 callkit 进行 voip 应用程序,在每次全新安装时,CallKit startCallAction 请求都会失败并抛出“com.apple.CallKit.error.requesttransaction error 7”。 请找到负责的方法...

回答 1 投票 0

接收短信的虚拟号码

是否可以在 VOIP 软交换机(例如 Magnus billing 或 Asterisks 或任何其他开源 VOIP 服务器)上创建虚拟号码,并能够接收该号码上的短信? 我试过了...

回答 1 投票 0

如何通过 SIP 将我的 Node.js 应用程序连接到外部 VOIP 提供商?

我有一个node.js应用程序,它使用Twilio双向媒体流来监听用户(通过STT)并发回音频。它在美国运行良好,但其他地区不支持 Twilio 可编程语音

回答 1 投票 0

通过uuid从ESL客户端自由切换播放

我正在使用 Freeswitch 1.8。 我使用 ESL 与 freeswitch 核心交互。 我想通过 uuid 将音频播放到会话中。 我通过使用 uuid_broadcast 尝试了很多方法: uuid_广播 0e570851-2871...

回答 1 投票 0

linphone 的 C# 包装器

我正在开发一个项目,构建在 Windows 平台上运行的 VoIP 软件。我们使用 C# 作为我们的主要编程语言。 我目前正在寻找一个开源库来帮助我

回答 3 投票 0

如何在 Android 中使用 Baresip 进行即时通讯应用

我可以在 Android kotlin 中使用 Baresip 构建即时消息应用程序吗?我已经看过这里的示例文档,但我仍然不明白。 请帮我。谢谢:)

回答 1 投票 0

Kamailio 替换 INVITE 请求中的 From 和 To 标头

我使用调度程序将我的邀请发送给 asterisk,但我发现问题需要替换 from 和 to 标头,因为 asterisk 知道 uacreg 内的其他用户。我像这样更改标题...

回答 1 投票 0

在PJSUA2中使用makeCall时出现错误450001

我想使用 pjsua2 创建软件电话应用程序。 当我使用 makeCall 函数时,我遇到这个问题: System.ApplicationException: 'C++ pj::错误: 标题: pjsua_call_make_call(acc.getId(...

回答 1 投票 0

Kamailio 会自动协商编解码器还是我必须手动设置它们

我正在尝试连接到属于供应商的 asterisk,供应商说我的邀请被拒绝,因为编解码器不是 PCMA/PCMU。 我还需要将 RTC 端口设置为 10K-40K 才能听到语音,w...

回答 1 投票 0

使用 JSSIP / WebRTC 发起 SIP 呼叫延迟 40 秒

我正在开发一个基于JavaScript的Web SIP客户端与Asterisk SIP服务器通信。 SIP 客户端使用 JSSIP 3.4.2,我正在 Chrome 版本 80 上进行测试。 SIP 客户端和 SIP 服务器都是

回答 4 投票 0

如何使用 Linphone 核心 API 在两个 IP 地址之间建立 VOIP 呼叫

我在协议方面没有任何经验(如 SIP/SDP/TCP/RTP),但我需要帮助才能在 Linux 计算机中使用 Linphone Lib 或 Linphone 核心 API 进行 VOIP 呼叫。 我的要求:我想要...

回答 1 投票 0

如何在qt Creator中编译并运行pjsua2演示应用程序?

我正在尝试在 Qt Creator 中构建 voip 应用程序。我在 C++ 方面没有太多经验。我安装了 Qt 并构建并安装了 pjproject 库。我使用 pkgconfig 添加了 pjproject 库,如下添加

回答 1 投票 0

pjsua2 循环录音质量很糟糕

我实现了一个简单的调用者和侦听器脚本,其工作方式如下: 监听者等待来电 呼叫者发起呼叫 呼叫者播放 wav 文件(从 pj.AudioMediaPlayer 传输

回答 1 投票 0

如何配置 Kamailio 将消息记录到特定的日志文件中,并首先使其日志记录工作

我制作了一个kamailio服务器,它一半通过路由器工作,但不能在本地工作(是的,我知道,这很奇怪),主要问题是我什至不知道到底发生了什么以及问题是什么。 .

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.