很多人知道并使用多平台推送通知服务OneSignal。 这篇文章介绍了如何从服务接收VoIP通知。 Internet协议语音(VoIP)应用程序使用户可以使用Internet连接而不是设备的蜂窝服务来拨打和接听电话。 主要问题是OneSignal SDK仅通过调用next来为通常的远程通知在SDK中注册令牌。 OneSignal.initWithLaunchOptions(launchOptions, appId: “YOUR_APP_ID”, handleNotificationAction: nil, settings: onesignalInitSettings) 众所周知,使用VoIP通知,开发人员需要使用PushKit实施令牌注册。 // Link to the PushKit framework import PushKit // Link to the PushKit framework import PushKit // Trigger VoIP registration on launch func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: NSDictionary?) -> Bool { self.voipRegistration() return true } // Trigger VoIP registration on launch func […]
我想在通话过程中播放声音,因此接收机将能够听到声音。 假设,我在办公室,我想在Twilio呼叫期间播放交通的声音。 这可能在iOS中使用Twilio? 如果我selectbutton播放交通声音,那么只有接收者可以听到相同的声音。 如果接收器select播放派对的声音,则只有主叫者可以听到该声音,而不是双方。 如果是的话,有什么可能的实施方法。
我在objective-c中有一个VOIP应用程序 当应用程序处于前台时,SIP呼叫正常工作。 我的问题是,当我的应用程序在后台SIP电话后10分钟后不工作。 我已经在applicationDidEnterBackground中启动了一个后台任务 bgTask = [application beginBackgroundTaskWithExpirationHandler:^{ // Clean up any unfinished task business by marking where you // stopped or ending the task outright. [application endBackgroundTask:bgTask]; bgTask = UIBackgroundTaskInvalid; }]; // Start the long-running task and return immediately. dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ // Do the work associated with the task, preferably in chunks. [application […]
嗨, 背景 我正在build立一个聊天消息应用程序,并且当用户从发送者接收消息时遇到了处理推送通知的问题.IV 实现 就像Whatsapp一样,在我收到推送通知并打开飞行模式之后,我仍然可以在打开应用程序时看到包含的信息。 所以,我相信在收到通知的时候已经得到了消息。 问题 当用户通过主屏幕上的应用程序图标打开应用程序而不是按下button或对通知执行其他操作时,找不到处理远程聊天消息推送通知的好方法。 受审 手动加载消息,当应用程序做了,但这不像我在Whatsapptesting。 我尝试了第三方套接字库(socket.io),但是一旦应用程序closures,iOS就终止了监听服务,它不适用于我想要构build的东西。 题 如果仍然使用推送通知或后台模式远程通知,是否有任何方式能够处理推送通知,当应用程序不运行? 我也发现有关苹果的PushKit,我不确定这是只允许VoIP提供的应用程序? 有谁知道苹果是否接受我的应用程序发布到AppStore,如果我只使用PushKit只发短信? 最贴心的问题,Whatsapp如何实现这个? 它也使用PushKit。 谢谢!!!
现在我正在尝试将CallKit集成到现有的VoIP应用程序中。 根据API,通过CallKit报告的每个呼叫都有一个与之关联的句柄。 我们的应用程序的用户可以进行audio和video呼叫,这是build立在帐户之间,他们没有任何关联的“电话号码”,所以我们设置呼叫处理types为“通用”,并使用一些特殊的帐户标识符作为这些处理的值。 这些用户帐户不是用户友好的,不应该在UI中显示。 所以有一个自然的愿望,在通话logging中显示真实的用户名。 这是我们碰到路障的地方。 根据WWDC会议,社交个人资料将是集成CallKit的VoIP应用程序之间的一种链接,所以我的问题是如何创build社交个人资料并将其与Callkit API链接? 与几个VoIP应用程序检查后,我不认为这是创build一个新的联系人与这些信息的正确方法,因为我找不到他们在联系人。 任何意见/build议/帮助将不胜感激! 提前致谢。
当应用程序在后台,并且来电已经发生,用户没有拿起。 当用户回到应用程序- (void)client:(id<SINCallClient>)client didReceiveIncomingCall:(id<SINCall>)call正在被调用。 重现步骤 用户来电者 用户B接收器 用户B在后台有应用程序 用户B呼叫用户A. 用户B在用户A接通之前挂断电话 用户B打开应用程序和- (void)client:(id<SINCallClient>)client didReceiveIncomingCall:(id<SINCall>)call立即被调用,并且call.status为0,所以SINCallStateInitiating 这是正常的行为? 有没有办法知道这个电话是不是“可用”了? 我正在使用iOS 10和Sinch版本:3.9.7-26289c8 谢谢! 编辑 显示如何初始化Sinch客户端,Manged Push,Notifications等代码下面的所有代码都发生在AppDelegate AppDelegate中 @interface AppDelegate ()<SINCallClientDelegate,SINManagedPushDelegate,SINClientDelegate> 初始化SINManagedPush : 在didFinishLaunchingWithOptions中的didFinishLaunchingWithOptions self.push = [Sinch managedPushWithAPSEnvironment:SINAPSEnvironmentAutomatic]; self.push.delegate = self; [self.push setDesiredPushTypeAutomatically]; 初始化Sinch客户端 :用户login后 – (void)initSinchClientWithUserId:(NSString *)userId { if (!_client) { _client = [Sinch clientWithApplicationKey:[BCEnvironment sinchAppKey] applicationSecret:[BCEnvironment sinchAppSecret] environmentHost:[BCEnvironment sinchEnvHost] […]
我使用Sinch库在iOS创build了一个VoIP应用程序。 我能够成功拨打电话,但无法创build双倍通话状态栏。 通过这个我的意思是,我的通话窗口出现,并在该窗口上我有一个button离开视图,并去其他地方(不挂断电话),我想要一个绿色的双倍高度通话状态栏显示我可以点击它,并返回给我打电话查看。 当我将应用程序发送到后台时,我看到双高度红条在跳板上返回到我的应用程序,所以后台模式&voip模式似乎设置正确。 我知道WhatsApp设法得到绿色酒吧(如这里看到)。 我已经search了一段时间,我能find的最好的方法就是使用AVAudioSession来回答这个问题。 但是,即使按照指示,并尝试添加一些其他的想法,我不能得到绿色的通话状态栏popup。 这感觉就像我不得不告诉iOS我的电话正在处理哪个视图? 这样它知道什么时候显示绿色的酒吧? 我试过的代码: [[AVAudioSession sharedInstance] setCategory:AVAudioSessionModeVoiceChat error:nil]; [[AVAudioSession sharedInstance] setActive:YES error:nil]; 然而, Sinch已经处理了这个问题,正如他们的文档中所提到的那样,我真的不知所措。 Sinch SDK使用audio会话类别模式AVAudioSessionModeVoiceChat来改善语音质量。
我正在使用Twilio iOS SDK。 我面临的问题是,当我打出电话和被叫方断开连接时,我没有收到任何委托callback。 我已经实现了TCConnectionDelegate方法connectionDidDisconnect 。 在这种情况下永远不会被调用。 另一方面,我可以成功断开来电呼叫设备。 我已经testing使用他们的示例应用程序“基本电话”。 该应用程序也存在同样的问题。
我试图删除callkit屏幕,一旦我的VoIP呼叫断开源或目的地。 我用这个代码 CXEndCallAction *endaction = [[CXEndCallAction alloc] initWithCallUUID:[NSUUID UUID]]; CXCallController *callController = [[CXCallController alloc] initWithQueue:dispatch_get_main_queue()]; requestTransaction:[CXTransaction transactionWithActions:nil completion:completion]]; 但是它并没有closurescallkit。 任何人都可以帮我解决这个问题吗?
我想从iPhone麦克风(NSData格式)获取原始audio数据通过套接字stream。 这不是我可以使用twilio / etc的情况,因为这是一个研究项目。 套接字的实现已经完成(我可以发送audio文件),但我无法获得stream式麦克风数据。 这是我的尝试: class ViewController: UIViewController, AVCaptureAudioDataOutputSampleBufferDelegate { override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. self.setupMicrophone() } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } func setupMicrophone() { let session = AVCaptureSession() session.sessionPreset = […]