Как осуществить регистрацию в Kamailio с помощью WebRTC? - PullRequest
0 голосов
/ 15 февраля 2019

Я настроил Kamailio для звонков через WebRTC.Регистрация прошла успешно, но когда я пытаюсь позвонить, возвращается ответ «478 Неразрешимое назначение».

Обычно я могу сказать, что мой SIP-прокси отвечает, но не может связаться с клиентом на основе его URI - такжеЯ успешно пингую клиентов с помощью "kamcmd ws.ping", но не могу с помощью "kamctl ping".Я не уверен, но я думаю, что проблема заключается в регистрации, где nathelper должен выполняться с помощью функции fix_nated_register (), но нет никаких признаков того, что это произошло.Я использую стандартную конфигурацию для подключения через веб-сокет и TLS.

Я пробовал оба JsSIP и sipML5 - только локальное сетевое подключение.

Это должно сделать то, что нужно в моем kamailio.cfg:

modparam ("nathelper | registrar", "receive_avp", "$ avp (RECEIVED)")

request_route {route (REQINIT);

  if (nat_uac_test(64)) {
            force_rport();
            if (is_method("REGISTER")) ###<--here
                    fix_nated_register();
            else {
                    if (!add_contact_alias()) {
                            xlog("L_ERR", "Error aliasing contact <$ct>\n");modparam("nathelper|registrar", "received_avp", "$avp(RECEIVED)")
                            sl_send_reply("400", "Bad Request");
                            exit;
                    }
            }
    }

...

А вот что сохраняется в базе данных местоположений пользователей:

                "Contact":  {
                  "Address":  "sip:oq1n4lu1@38gn0ph6h558.invalid;transport=ws",
                  "Expires":  577,
                  "Q":  -1,
                  "Call-ID":  "uefjkjk5cdatcdgg333vo8",
                  "CSeq": 8,
                  "User-Agent": "JsSIP 3.2.15",
                  "Received": "[not set]",
                  "Path": "[not set]",
                  "State":  "CS_NEW",
                  "Flags":  0,
                  "CFlags": 0,
                  "Socket": "tls:192.168.2.224:4443",
                  "Methods":  6943,
                  "Ruid": "uloc-5c66ecbf-974-1",
                  "Instance": "<urn:uuid:4dd03beb-8241-49fc-81f6-db0d895fde87>",
                  "Reg-Id": 1,
                  "Server-Id":  0,
                  "Tcpconn-Id": 2,
                  "Keepalive":  0,
                  "Last-Keepalive": 1550250947,
                  "Last-Modified":  1550250947

fix_nated_register () должен скопировать фактический IP-адрес и порт источника в заголовок Received в расположении пользователя и отправить параметр Received в заголовок Contact в200 ОК в диалоге РЕГИСТРАЦИЯ, но это не так.Любые предложения, как это исправить?

...