PJSUA2: ограничение длины заголовка контакта - PullRequest
0 голосов
/ 08 июня 2019

Я создаю приложение VOIP для Android с поддержкой push-уведомлений на основе PJSUA2.

Мне необходимо отправить токен push-уведомления (FCM) на сервер (в моем случае Asterisk) в качестве параметра uri контакта, чтобы я мог получить его с помощью сценария с сервера и отправить уведомление для пробуждения клиента перед отправкой запроса входящего вызова.

Я помещаю параметры в параметры контакта с помощью

acfg.getSipConfig().setContactUriParams(buildParams(contactParameters));

contactParams - это HashMap<String, String> с именем и значением параметров, а buildParams - это следующий метод:

private String buildParams(Map<String, String> params) {
    StringBuilder builder = new StringBuilder();
    for (String k : params.keySet()) {
        builder.append(';');
        builder.append(k);
        String v = params.get(k);
        if (v != null && v.trim().length() > 0) {
            builder.append("=\"");
            builder.append(v);
            builder.append('\"');
        }
    }
    return builder.toString();
}

без параметров FCM все работает хорошо, но

  • создание контактного uri со следующими параметрами ;pn-provider="fcm";pn-tok="LONG FCM TOKEN" вызывает зависание вызовов через 32 секунды (см. вопрос PJSUA2 Android - сброс входящих вызовов через 32 секунды )
  • удаление ;pn-provider="fcm" работает
  • отправка только части работ токена (в pn-tok вместе с параметром pn-provider)

Я думал, что это может быть "недопустимая хараcters issue ", но на самом деле это кажется" проблемой максимальной длины ".

Существует ли максимальная длина заголовка Contact или максимальная длина URI для заголовка Contact?Если да, то это лимит PJSIP или SIP?

...