Linphone SDK使用(三)電話功能

一丐吓、監(jiān)聽電話

監(jiān)聽電話的撥出與電話的接收压鉴;

[NSNotificationCenter.defaultCenter addObserver:self
                                           selector:@selector(respondsToCallUpdate:)
                                               name:kLinphoneCallUpdate
                                             object:nil];
- (void)respondsToCallUpdate:(NSNotification *)notif
{
    LinphoneCall *call = [[notif.userInfo objectForKey:@"call"] pointerValue];
    LinphoneCallState state = [[notif.userInfo objectForKey:@"state"] intValue];
    NSString *message = [notif.userInfo objectForKey:@"message"];
    NSLog(@"----------state----------%ld", state);
    switch (state) {
        case LinphoneCallIncomingReceived:
        {
            [self displayIncomingCall:call];
//            if (!CallManager.callKitEnabled) {
//                [self displayIncomingCall:call];
//            }
        }
            break;
        case LinphoneCallIncomingEarlyMedia:
        {
            if (linphone_core_get_calls_nb(LC) > 1 ||
                (floor(NSFoundationVersionNumber) <= NSFoundationVersionNumber_iOS_9_x_Max)) {
                [self displayIncomingCall:call];
            }
            break;
        }
        case LinphoneCallOutgoingInit:
        case LinphoneCallOutgoingEarlyMedia:
        case LinphoneCallOutgoingProgress:
        case LinphoneCallOutgoingRinging:
        {
            CallAppData *data = [CallManager getAppDataWithCall:call];
            if (!data.isConference) {
                // 如果不是會議,則跳轉到播出電話頁面
                [self displayOutgointCall:call];
            }
            break;
        }
        case LinphoneCallPausedByRemote:
        case LinphoneCallConnected:
        {
            if (![LinphoneManager.instance isCTCallCenterExist]) {
                /*only register CT call center CB for connected call*/
                [LinphoneManager.instance setupGSMInteraction];
            }
            break;
        }
        case LinphoneCallError: {
            [self displayCallError:call message:message];
        }
        case LinphoneCallEarlyUpdatedByRemote:
        case LinphoneCallEarlyUpdating:
        case LinphoneCallIdle:
            break;
        case LinphoneCallReleased:
        {
            self.ingoingInfo = nil;
            if ([UIApplication sharedApplication].applicationState == UIApplicationStateBackground) {
                dispatch_async(dispatch_get_main_queue(), ^{
                    [self showCallVC];
                    [CallManager.instance stopLinphoneCore];
                    // 退回到撥號頁面
                });
            }
        }
            break;
        case LinphoneCallPaused:
        case LinphoneCallPausing:
        case LinphoneCallRefered:
            break;
        case LinphoneCallResuming: {
            break;
        }
        case LinphoneCallStateStreamsRunning: {
            [self configureAudioSession];
        }
            break;
        case LinphoneCallUpdating:
            break;
    }
}

二、撥打電話

LinphoneAddress *addr = [LinphoneUtils normalizeSipOrPhoneAddress:number];
[[LinphoneManager instance] call:addr];
self.callNumber = number;
if (addr) {
    linphone_address_destroy(addr);
}

三陪毡、接聽電話

[CallManager.instance acceptCallWithCall:call hasVideo:YES]

這里的CallManager是取自官方demo中關于音頻通話部分的代碼;

四桅滋、取消接聽電話

[CallManager.instance terminateCallWithCall:call];
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市燎斩,隨后出現(xiàn)的幾起案子虱歪,更是在濱河造成了極大的恐慌,老刑警劉巖栅表,帶你破解...
    沈念sama閱讀 217,277評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件笋鄙,死亡現(xiàn)場離奇詭異,居然都是意外死亡怪瓶,警方通過查閱死者的電腦和手機萧落,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評論 3 393
  • 文/潘曉璐 我一進店門践美,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人找岖,你說我怎么就攤上這事陨倡。” “怎么了许布?”我有些...
    開封第一講書人閱讀 163,624評論 0 353
  • 文/不壞的土叔 我叫張陵兴革,是天一觀的道長。 經(jīng)常有香客問我蜜唾,道長杂曲,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,356評論 1 293
  • 正文 為了忘掉前任袁余,我火速辦了婚禮擎勘,結果婚禮上,老公的妹妹穿的比我還像新娘颖榜。我一直安慰自己棚饵,他們只是感情好,可當我...
    茶點故事閱讀 67,402評論 6 392
  • 文/花漫 我一把揭開白布掩完。 她就那樣靜靜地躺著噪漾,像睡著了一般。 火紅的嫁衣襯著肌膚如雪藤为。 梳的紋絲不亂的頭發(fā)上怪与,一...
    開封第一講書人閱讀 51,292評論 1 301
  • 那天夺刑,我揣著相機與錄音缅疟,去河邊找鬼。 笑死遍愿,一個胖子當著我的面吹牛存淫,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播沼填,決...
    沈念sama閱讀 40,135評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼桅咆,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了坞笙?” 一聲冷哼從身側響起岩饼,我...
    開封第一講書人閱讀 38,992評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎薛夜,沒想到半個月后籍茧,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,429評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡梯澜,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,636評論 3 334
  • 正文 我和宋清朗相戀三年寞冯,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,785評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡吮龄,死狀恐怖俭茧,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情漓帚,我是刑警寧澤母债,帶...
    沈念sama閱讀 35,492評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站尝抖,受9級特大地震影響场斑,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜牵署,卻給世界環(huán)境...
    茶點故事閱讀 41,092評論 3 328
  • 文/蒙蒙 一漏隐、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧奴迅,春花似錦青责、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至暇检,卻和暖如春产阱,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背块仆。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評論 1 269
  • 我被黑心中介騙來泰國打工构蹬, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人悔据。 一個月前我還...
    沈念sama閱讀 47,891評論 2 370
  • 正文 我出身青樓庄敛,卻偏偏與公主長得像,于是被迫代替她去往敵國和親科汗。 傳聞我的和親對象是個殘疾皇子藻烤,可洞房花燭夜當晚...
    茶點故事閱讀 44,713評論 2 354

推薦閱讀更多精彩內(nèi)容