Я делаю приложение для звонков в IOS. Проект в быстром темпе. Я использовал PJSIP в качестве сторонней библиотеки для совершения звонков и Asterisk в качестве VoIP-сервера. Я настроил сервер, а также интегрировал PJSIP в свой проект. Я могу зарегистрироваться на сервере, звонить, принимать звонки. Я хочу инициализировать новый ViewController, когда я получаю вызов, показывающий идентификатор пользователя и другую информацию. Метод принимающего вызова реализован на C.
/* Callback called by the library upon receiving incoming call */
static void on_incoming_call(pjsua_acc_id acc_id, pjsua_call_id call_id,
pjsip_rx_data *rdata)
{
pjsua_call_info ci;
PJ_UNUSED_ARG(acc_id);
PJ_UNUSED_ARG(rdata);
pjsua_call_get_info(call_id, &ci);
PJ_LOG(3,(THIS_FILE, "Incoming call from %.*s!!",
(int)ci.remote_info.slen,
ci.remote_info.ptr));
/* Automatically answer incoming calls with 200/OK */
//pjsua_call_answer(call_id, 200, NULL, NULL);
//This is where i want to initize the viewcontroller and pass some data.
}
Я прочитал несколько вопросов, и для вызова быстрой функции используется цель c. Чтобы упростить задачу, я планирую использовать NSNotification of Objective C для отправки уведомления и получения его в другом открытом Swift ViewController. Можно ли сделать это таким образом? если да, то это лучшая практика? Если мы придерживаемся моего решения, как я могу назвать цель c в файле .c? Это какое-то решение, которое я прочитал:
Это мой файл моста
#ifndef App_Bridging_Header_h
#define App_Bridging_Header_h
#endif /* App_Bridging_Header_h */
#import <BWSip/BWSip.h>
#import "XCPjsua.h"
#import "Reachability.h"
#import "ClearLocalSipManager.h"
#import "testClass.h"