2016-10-10 5 views
0

今、私はCallKitを既存のVoIPアプリケーションに統合しようとしています。ソーシャルプロファイルをCallKit APIとマッピングする方法

APIによれば、CallKit経由で報告されたすべての呼び出しにはハンドルが関連付けられています。私たちのアプリのユーザーは、アカウント間に確立された音声とビデオの通話を行うことができ、関連する「電話番号」がないので、コールハンドルタイプを「汎用」に設定し、 。これらのユーザーアカウントはユーザーフレンドリーではなく、UIに表示されることは想定されていません。

したがって、通話履歴ログに実際のユーザー名を表示することは当然です。これがロードブロックに当たった場所です。

WWDCセッションによれば、ソーシャルプロファイルはCallKitを統合したVoIPアプリ間の一種のリンクになります。私の質問はソーシャルプロファイルを作成してCallkit APIとリンクする方法です。

いくつかのVoIPアプリでチェックした後、私は連絡先でそれらを見つけることができないので、これらの情報で新しい連絡先を作成するのは正しい方法だとは思わない。

すべてのコメント/提案/ヘルプは高く評価されます!

ありがとうございます。

答えて

3

最近の返信ですが、将来の視聴者に役立つ可能性があります。これをProviderDelegateでトリックすることができます。あなたの持っているものは何でもあなたのハンドルで電話を始めてください一般または電話番号。そして、あなたは

public func startCall(handle: String,contactIdentifier:String/*Your Callee Name*/, video: Bool = false) { 
     let handle = CXHandle(type: .Generic, value: handle) 
     let startCallAction = CXStartCallAction(callUUID: NSUUID(), handle: handle) 

     startCallAction.video = video 
     startCallAction.contactIdentifier = contactIdentifier //Callee name goes with action so we can get in Delegate 
     let transaction = CXTransaction() 
     transaction.addAction(startCallAction) 

     requestTransaction(transaction) 
    } 

のようなスタートコールアクションで名前を被呼および送信、メインのトリックは、着信コールに対して

public func provider(provider: CXProvider, performStartCallAction action: CXStartCallAction) { 

     let update = CXCallUpdate() 
     update.remoteHandle = action.handle 
     update.hasVideo = action.video 
     update.localizedCallerName = action.contactIdentifier  //Here contactIdentifier is assigned callee name on start call 

     self.provider.reportCallWithUUID(action.callUUID, updated: update) 


     // Rest of your code 
    } 

セットのようProviderDelegateであなたのStartCallActionであなたの呼び出しを更新した後あなたのlocalizedCallerNameはです。CXC​​allUpdate

あなたの通話履歴には、

enter image description here

のようなものが表示されます
関連する問題