我需要为朋友的公司设置一个简单的IVR系统,让呼叫者通过按电话键浏览菜单.它有点像公交车时刻表.
对于今天的日程表按'1',明天的日程表按'2'等等.
它只是一个信息系统,即没有导航路线最终会与真人结束,但只播放音频信息.
现在,我以前从未设置过这样的东西,并且在Google上进行了一些挖掘.似乎我将能够使用Asterisk实现这一目标.
我正在尝试通过Twilio客户端在iOS上设置VOIP呼叫,但很难正确设置音频.我已经按照Twilio的所有教程进行了操作,并且能够连接呼叫但无法听到音频.是否有任何可能有帮助的第三方教程?
升级到iOS Beta 13之后,我注意到了一件不愉快的事情:我的应用有时会因传入的VoIP推送而崩溃。
在崩溃报告中,我看到以下内容:
iOS 13 Killing app because it never posted an incoming call to the system after receiving a PushKit VoIP callback
Fatal Exception: NSInternalInconsistencyException
0 CoreFoundation 0x1af21b9f0 __exceptionPreprocess
1 libobjc.A.dylib 0x1af7284fc objc_exception_throw
2 CoreFoundation 0x1af11efec +
[_CFXNotificationTokenRegistration keyCallbacks]
3 Foundation 0x1aeda1330 -[NSAssertionHandler
handleFailureInMethod:object:file:lineNumber:description:]
4 PushKit 0x19caa6b54 -[PKPushRegistry
_terminateAppIfThereAreUnhandledVoIPPushes]
5 libdispatch.dylib 0x1afa441ec _dispatch_client_callout
6 libdispatch.dylib 0x1af9f6c6c
_dispatch_lane_barrier_sync_invoke_and_complete
7 PushKit 0x19caa5b74 __73-[PKPushRegistry
voipPayloadReceived:mustPostCall:withCompletionHandler:]_block_invoke
8 libdispatch.dylib 0x1afa43678
_dispatch_call_block_and_release
9 libdispatch.dylib 0x1afa441ec
_dispatch_client_callout
10 libdispatch.dylib 0x1af9f61f8
_dispatch_main_queue_callback_4CF$VARIANT$mp
11 CoreFoundation 0x1af1992a0
CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE …Run Code Online (Sandbox Code Playgroud) 我已经安装了SIPDROID.我在sip2sip做了三个帐户.之后,我使用该帐户之一配置了应用程序.应用程序正常.
问题是:如果我使用SIP多次拨打同一部电话,无论如何都要同时处理所有电话?
第一次通话继续时,另一个来电不会显示在手机屏幕上.
第一个电话被接听,但第一次通话时的第二个电话怎么样.
即使是第二个电话也没有显示在屏幕上.困惑!!
如果我和其他7个用户在一个房间,我想知道WebRTC是否强迫每个用户与其他每个参与者建立连接.
显然它会消耗类似7kb/s*7下载甚至上传的内容,如果连接已经很忙,很多连接都无法处理.相反,对于某种类型的媒体中继,带宽使用量仅为7kb/s,但您将失去对等体之间的带宽适应性.
你知道任何媒体中继,或解决这个问题的方法吗?是适合这种工作的TURN服务器(如https://code.google.com/p/rfc5766-turn-server/)(包括多播)?
我可以想到的第一个来电通知解决方案是Apple的推送通知服务.但是,它不能保证..它可能会丢失的可能性相对较高..而在VoIP应用程序中,来电通知非常重要,以至于我不能经常错过它...
因此,我按照提示启用了后台模式以保持应用程序处于活动状态并收听任何来电邀请.通过权利,我应该在应用获得来电邀请时显示本地通知.当应用程序处于后台/非活动状态时,这非常有效.但是,当用户手动杀死应用程序时,没有代码会被执行,因此应用程序将不会在这种情况下获得任何来电邀请...而且由于这种特殊情况,我仍然需要依赖远程推送通知.
我想要实现的是......首先等待远程通知,如果它到达,则不再显示本地通知.如果丢失,则显示本地通知,以便始终通知用户.
问题是......我无法判断是否已收到远程通知.
我想知道处理VoIP应用的来电通知的最佳做法是什么?
无论如何我可以使用Ionic Framework实现VOIP客户端吗?这是一个用于VOIP的SDK,但关于连接和所有内容,是否可能或应该是原生的?
谢谢
我正在尝试使用c#构建一个简单的VoIP应用程序,所以我发现这Ozeki SDK是一种简单的方法,但是当我尝试使用SIPAccount来自Ozeki SDK和我的本地的类注册SIP帐户时,IP它总是失败,这就是代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Ozeki.VoIP;
using Ozeki.VoIP.SDK;
namespace SIP_R
{
class Program
{
private static ISoftPhone softphone; // softphone object
private static IPhoneLine phoneLine; // phoneline object
private static void Main(string[] args)
{
// Create a softphone object with RTP port range 5000-10000
softphone = SoftPhoneFactory.CreateSoftPhone(5000, 10000);
// SIP account registration data, (supplied by your VoIP service provider)
var registrationRequired = true;
var userName …Run Code Online (Sandbox Code Playgroud) 我正在使用Callkit和Linphone开发iOS voip应用程序.当我收到来电时,系统显示本机电话用户界面,用户接受或拒绝接听电话,当用户点击接听按钮时,呼叫开始但电话用户界面消失.
如何在用户接听电话后保留原生手机用户界面,例如whatsapp吗?
此外,如何在开始拨出电话时显示本机电话用户界面?
这是我的providerDelegate代码:
func reportIncomingCall(uuid: UUID, handle: String, hasVideo: Bool = false, completion: ((NSError?) -> Void)? = nil) {
// Construct a CXCallUpdate describing the incoming call, including the caller.
let update = CXCallUpdate()
update.remoteHandle = CXHandle(type: .generic, value: handle)
update.hasVideo = hasVideo
// Report the incoming call to the system
provider.reportNewIncomingCall(with: uuid, update: update) { error in
/*
Only add incoming call to the app's list of calls if the call was allowed (i.e. there was no …Run Code Online (Sandbox Code Playgroud)