1

私はCTTelephonyCenterAddObserver(ct, NULL, callback, NULL, NULL, CFNotificationSuspensionBehaviorHold);通話を記録するために使用しています。

コールバックメソッドのコードは次のとおりです

static void callback(CFNotificationCenterRef center, void *observer, CFStringRef name, const void *object, CFDictionaryRef userInfo)
{

    NSString *notifyname=(NSString *)name;
    if ([notifyname isEqualToString:@"kCTCallStatusChangeNotification"])
    {

        NSDictionary *info = (NSDictionary*)userInfo;

        NSString *state=[[info objectForKey:@"kCTCallStatus"] stringValue];
        NSLog(@"Call status changed = %@",state);

        if ([state isEqualToString:@"5"]){//disconnect
            NSLog(@"unanswered:%@",state);

        }
        if ([state isEqualToString:@"3"]){//OUTGOING
            NSLog(@"Outgoing calls:%@",state);

        }


        if ([state isEqualToString:@"1"]){//connected

            //Call Connected
        }


        callState=[state intValue];


    }
}

コールバック メソッドで問題なくすべての呼び出しイベント/状態を受信して​​います。しかし、切断状態 (5) には問題があります。問題は、すでに接続されている通話が切断され、通話時間が 5/6 秒を超える場合、切断 (5) 状態がコールバック メソッドで受信されないことです。

他の誰かが同じ問題に直面し、この問題の解決策を見つけましたか?

4

0 に答える 0