ネイティブに直訳されたバージョン:VSでexosipを使用する方法
oSIPライブラリをベースとしたSIPプロトコルスタックです。exosipを使用してSIP通信を行う手順は次のとおりです。
- oSIP コンテキストを作成します。 oSIP コンテキスト オブジェクトは、 osip_create() 関数を使用して作成できます。
- osip_t *osip;
int 結果 = osip_create(&osip); - エクソシップコンテキストを初期化します。エクソシップコンテキストオブジェクトを初期化するには、exosip_init() 関数を使用できます。
- int result = exosip_init(osip);
- ローカルのIPアドレスやポート番号など、SIPプロトコルスタックに関するいくつかのパラメータを設定できます。これらのパラメータの設定には、`exosip_set_option()`関数が使用できます。
- int result = exosip_set_option(osip, EXOSIP_OPT_SET_LOCALIP, local_ip);
- SIPアカウントをレジストします。exosip_add_authentication_info() 関数を使用して SIP アカウントの認証情報を追加できます。
- int result = exosip_add_authentication_info(osip, username, realm, password);
- SIPリクエストを送信します。SIPリクエストはexosip_call_build_initial_request()関数を使用して構築でき、exosip_call_send_initial_request()関数を使用してリクエストを送信できます。
- osip_message_t *message; int result = exosip_call_build_initial_request(osip, &message, “INVITE”, target); result = exosip_call_send_initial_request(osip, message);
- SIPメッセージを受信し、処理する。 メッセージを受信するのを待機するように exosip_message_wait() 関数を使用し、メッセージタイプに従って適宜処理を行う。
- osip_event_t *event;
int result = exosip_event_wait(osip, 0, &event);
if (result == 0 && event->type == EXOSIP_MESSAGE_NEW) {
// 处理收到的SIP消息
// …
} - SIPリクエストに応答します。着信SIPリクエストのタイプに応じて、exosip_call_build_answer()関数を使用してSIP応答メッセージを構築し、exosip_call_send_answer()関数を使用して応答を送信できます。
- osip_message_t *answer;
result = exosip_call_build_answer(osip, event->tid, 200, &answer);
result = exosip_call_send_answer(osip, event->tid, 200, answer); - exosipコンテキストをクリーンアップします。プログラムの終了時には、exosip_quit() 関数を呼び出して、Exosip コンテキスト オブジェクトをクリーンアップする必要があります。
- osip_quit(osip);
基本的なexosipの使用方法ですが、具体的な使用方法は、ニーズと状況に合わせて調整・拡張する必要があります。 oSIPライブラリとexosip サンプルコードを参照すると、exosip の使用方法の詳細がわかります。