voip 相关问题

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

Twilio Android,接听来电时收到“onCancelledCallInvite:CallException代码:31008”

我已在 Android 上实现并运行 Twilio Voice。然而,通常在接听电话后,我们会立即收到“onCancelledCallInvite:CallException代码:31008”。奇怪的是...

回答 1 投票 0

使用 CXEndCallAction 请求事务时出错

使用 CXEndCallAction 请求 CXTransaction 时,事务失败并显示错误代码 错误域=com.apple.CallKit.error.requesttransaction代码=4“(空)” 我能够制作一个

回答 2 投票 0

如何在flutter上实现webrtc?

我正在使用 flutter 开发适用于 Android 和 IOS 的 voip 应用程序。我正在使用 dart sip_ua。我能够注册到信令服务器并接听电话。客户端还能够连接到...

回答 1 投票 0

如何在我的 flutter 应用程序中添加 Voip 通话功能?

我想在我的 Flutter 应用程序中添加 VoIP 呼叫,例如 Swiggy/uber,他们可以从应用程序呼叫电话号码,请帮助我。谢谢你! 还没有找到任何可靠的文档。

回答 1 投票 0

检测RTP流中使用的编解码器(对于动态PT)

是否可以通过单独分析RTP流来检测RTP流中使用的编解码器?我知道 RTP 标头中的有效负载类型 (PT) 字段 - 可用于识别需要的编解码器...

回答 2 投票 0

在pjsua2中设置来电显示

我正在使用pjsua2进行C++项目,我有一个配置了N多个DID的中继,代码成功调用,问题是我想调用但每个调用必须使用dif...

回答 1 投票 0

VoIP 通话,如 Whatsapp/Skype

我们正在制作一个类似于whatsapp 的应用程序。 我们的服务器应该能够向其他(内部验证的)手机发送呼叫(机器人呼叫)和短信(SMS)。 这怎么可能(voip?sip?)并且

回答 1 投票 0

SipSorcery 注册和邀请使用不同的端口

我目前正在尝试通过 SipSorcery 在我的 Windows 电脑上使用小型 WPF 应用程序进行呼叫。我正在使用 .net 6 和最新版本的 SipSorcery 包。在注册用户代理期间我...

回答 1 投票 0

如何将GOIP GSM网关与SIP电话连接

有没有办法将sip/ip电话直接与goip GSM网关连接。 我正在使用GOIP16 固件版本:GST-1.01-68

回答 1 投票 0

需要通过互联网将我的 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

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