Как получить медиа атрибут из тела SDP в pjsua2? - PullRequest
0 голосов
/ 17 октября 2019

Есть ли способ получить атрибут мультимедиа, являющийся частью тела SDP, из функции обратного вызова или аналогичной с библиотекой PJSUA2?

Я ищу способ получить удаленныймедиа-порт и IP-адрес, которые были отправлены в запросе SIP INVITE.

Я знаю, как зарегистрировать обратный вызов для входящих вызовов, однако, на самом деле, этот обратный вызов не содержит никакой информации об удаленной стороне.

1 Ответ

0 голосов
/ 24 октября 2019

Конечно, есть способ сделать это. Например, в on_call_media_state обратный вызов:

  1. включает заголовочный файл pjsua_internal: #include <pjsua-lib/pjsua_internal.h>
  2. получить pjsua_call структурный указатель с использованием call_id из аргумента обратного вызова: pjsua_call *call = &pjsua_var.calls[call_id];
  3. теперь вы можете читать текущий локальный и удаленный SDP:

    const pjmedia_sdp_session *remote_sdp;
    const pjmedia_sdp_session *local_sdp;
    pj_status_t status = pjmedia_sdp_neg_get_active_remote(call->inv->neg, &remote_sdp);
    pj_status_t status = pjmedia_sdp_neg_get_active_local(call->inv->neg, &local_sdp);
    for (int i = 0; i < remote_sdp->media_count; i++) {
        // structure with access to SDP m values
        pjmedia_sdp_media *m = remote_sdp->media[i];
    }
    

Я не запускал этот код, но он должен работать.

Надеюсь, что это поможет вам!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...