Jump to content

Функциональность Keenetic DECT


Recommended Posts

@Joe D@KorDen Разобрали проблему.

Итак, в pjsip есть массив даных по учеткам. В каждой учетке есть указатель на структуру pjsip_regc в которой хранятся даные для регистрации.

https://github.com/pjsip/pjproject/blob/master/pjsip/src/pjsip-ua/sip_reg.c

При успешной регистрации pjsip получает от сервера Service-Route и заменяет все роуты (прокси) в учетке на то, что пришло от сервера. При этом в pjsip_regc не заменяет - там лежат данные, рассчитанные при старте программы.

Следующая регистрация также делается при помощи старой pjsip_regc, и так до тех пор, пока регистрация успешна. Когда регистрация не удалась (например, нет связи с сервером) - структура pjsip_regc удаляется. При следующей попытке регистрации она создается заново исходя из данных учетки, а в учетке уже поменяли роуты, и роут не ресолвится, и регистрация не работает.

Итого:

  1. У нас неправильный алгоритм обработки Service-Route
  2. Каждая проблема с регистрацией вызвана недоступностью сервера телефонии Билайн

Что дальше:

  1. Пишу о проблеме в поддержку pjsip, чтобы они починили для будущих поколений
  2. Делаю настройку, которая позволит игнорировать Service-Route или добавлять новые роуты в конец, а не заменять старые
  3. Пока будет готова новая команда CLI, попробуйте использовать прописанный руками маршрут ip host mskimcs01.msk.ims.mnc099.mcc250.3gppnetwork.org 212.119.246.230 - это может помочь
  • Upvote 2
Link to comment
Share on other sites

@Belkunt Сейчас нет. Начали делать хранение телефонной книги и истории звонков на сервере (чтобы не заводиться с флешкой), но потом всех направили заниматься FXS донглом. Думаю, в ближайший год до телефонной книги не доберемся.

Link to comment
Share on other sites

Не мое конечно дело, но FXS в 2020 году  странный сценарий использовать дома аналоговый телефон, особенно учитывая что цифровые VoIP телефоны приближаются по стоимости к аналоговым телефонным аппаратам.

К тому же "зоопарк" аналоговых устройств еще более веселое местечко, чем DECT... тут и несколько вариантов передачи определителя номера абонента... и разные тональные варианты набора... вы прямо уверены, что получится сделать универсальное устройство, и не повторится судьба Keenetic DECT, который уверенно работает только с линейкой Gigaset, а все остальные производители (особенно Panasonic) это лотерея...

Edited by Belkunt
Link to comment
Share on other sites

@BelkuntK+DECT очень мало покупали. Вероятно, как раз радиотелефоны не выдерживают конкуренции с мобильными.

К FXS можно по проводу подключить как DECT систему (база и трубка одного производителя, с полной родной функциональностью), так и обычный телефон. Также надеемся сделать поддержку нескольких донглов одновременно. Тогда одного роутера хватит на маленький офис.

Вообще - теория проверяется практикой. Посмотрим, как будут покупать FXS, если его доделаем.

Link to comment
Share on other sites

@Joe D Отключили поддержку Service-Route начиная с 3.04.

Там получилось, что в pjsip эта поддержка, скорее, "для галочки", а как пытаешься сделать нормально - то одного не хватает, то другого.

Если кому-то будет сильно нужно - сделаем как положено, а пока - помучались пару дней, и в результате - просто отключили.

После обновления на следующую (3.04.A.15) роутер больше не должен пытаться ходить на странный адрес mskimcs01.msk.ims.mnc099.mcc250.3gppnetwork.org

  • Thanks 1
Link to comment
Share on other sites

On 3/28/2020 at 1:40 AM, KorDen said:

Стоп. Нет. "6.1.  Procedures at the UA": "it uses the content of the Service-Route header field as a preloaded Route header field in outgoing initial requests". И всё. Service-Route - это не outbound-прокси, и тем более не редирект регистрации.

Пример описан в разделе 6.4. Клиенту UA1 возвращают в качестве Service-Route P2 и HSP, но он продолжает обращаться к P1, просто у себя в Route он МОЖЕТ подставлять присланные P2 и HSP.

Да, все правильно. Только смотреть лучше в TS 24.229 п.5.1.2A, т.к. заголовок Service-Route -это расширение введенное для нужд 3GPP сетей. 
IMS возвращает в Service-Route адрес(a) S-CSCF, который должен быть вторым в списке Route (может быть несколько URI в Service-Route, тогда все по порядку, т.е второй и дальше). UE при формировании запроса non-REGISGTER заполняет Route  всегда так: первый URI в Route -это P-CSCF (Outbound Proxy), дальше URI S-CSCF, сохраненный из заголовка Service-Route в SIP 200 OK на REGISTER.
P-CSCF (Outbound Proxy) в случае не-мобильного клиента либо настраивается в конфиге, либо выдается через DHCP.

>>

The UE shall build a proper preloaded Route header field value for all new dialogs and standalone transactions. The UE shall build a list of Route header field values made out of the following, in this order:

a) the P-CSCF URI containing the IP address acquired at the time of the P-CSCF discovery procedures which was used in registration of the contact address (or registration flow); and

NOTE 15:If the UE is provisioned with or receives a FQDN at the time of the P-CSCF discovery procedures, the FQDN is resolved to an IP address at the time of the P-CSCF discovery procedures.

  1. b)  the P-CSCF port based on the security mechanism in use:

    • -  if IMS AKA or SIP digest with TLS is in use as a security mechanism, the protected server port learnt during the registration procedure;

    • -  if SIP digest without TLS, NASS-IMS bundled authentication or GPRS-IMS-Bundled authentication is in use as a security mechanism, the unprotected server port used during the registration procedure;

  2. c)  and the values received in the Service-Route header field saved from the 200 (OK) response to the last registration or re-registration of the public user identity with associated contact address.

Link to comment
Share on other sites

  • 2 weeks later...

Интересный баг нашел, а может и не баг) К роутеру подключен внешний HDD в порт USB 3.0 и dect в порт USB 2.0. В настройках роутера порт USB 3.0 работает в режиме 2.0. Если переключить его в 3.0, то радиус действия dect сокращается практически до прямой видимости. Это нормально?

Edited by Rezdbic
  • Upvote 1
Link to comment
Share on other sites

2 минуты назад, Rezdbic сказал:

Если переключить его в 3.0, то радиус действия dect сокращается практически до прямой видимости. Это нормально?

Нормально для паршивого кабеля и/или коробки (диска).

  • Thanks 1
Link to comment
Share on other sites

4 часа назад, Rezdbic сказал:

К роутеру подключен внешний HDD в порт USB 3.0 и dect в порт USB 2.0

У меня в 3.0 воткнута 3.0 флешка в режиме 3.0, и dect в 2.0, и так работает уже 3 года. Да, Plus DECT в целом слабее обычной базы, но хуже не становится

А WiFi 2.4 ГГц у вас одновременно с этим не глохнет?

  • Upvote 1
Link to comment
Share on other sites

  • 4 weeks later...

Да, там выложили версию с поддержкой FXS донгла. Поменялись команды CLI - видимо, зацепило регистрацию.

Еще с новой версией не будет работать старое мобильное приложение в плане телефонии. Телефонией в новом скоро займутся.

Вероятно, что будут новые баги.

Link to comment
Share on other sites

  • 5 weeks later...

Скажите пожалуйста, почему "Правило набора" ограничено всего ста символами? У меня правило не влезает =( 

Link to comment
Share on other sites

5 hours ago, gaaronk said:

Скажите пожалуйста, почему "Правило набора" ограничено всего ста символами? У меня правило не влезает =( 

Надо было как-то ограничить. А что Вы с ним делаете, что не влезает? Какое оно у Вас?

Link to comment
Share on other sites

2 hours ago, des said:

Надо было как-то ограничить. А что Вы с ним делаете, что не влезает? Какое оно у Вас?

В принципе я разобрался уже. Все равно сам сервер телефонии ограничивает. Такое развесистое правило набора нужно было для проводных телефонов где подняли трубку и жмем клавиши. что бы не ждать паузы - окончания набора номера, а набирать мгновенно. 

В DECT это не играет роли. номер набрали - зеленую кнопку нажали.

Link to comment
Share on other sites

@gaaronkМы сейчас делаем новый USB донгл для подключения проводных телефонов, поэтому любые примеры того, что в текущей реализации неудобно, будут очень полезными.

Link to comment
Share on other sites

16 часов назад, gaaronk сказал:

Такое развесистое правило набора нужно было для проводных телефонов где подняли трубку и жмем клавиши. что бы не ждать паузы - окончания набора номера, а набирать мгновенно. 

Типичный набор для PSTN в РФ "0x|[01]xx|[2-79]xxxxx|8,[3489]xxxxxxxxx|8,[125]x,xxxx+" или у вас там замены прописаны?

Edited by KorDen
Link to comment
Share on other sites

5 hours ago, des said:

@gaaronkМы сейчас делаем новый USB донгл для подключения проводных телефонов, поэтому любые примеры того, что в текущей реализации неудобно, будут очень полезными.

Ну у меня специфические задачи. Мне гарное аппарате (dect или проводной) довести до asterisk, который и держит все линии и сам везде маршрутизирует. С учетом что звонки внутренние, офис, РФ, Украина, то пока вот так:

2xxx|8[3-9]xxxxxxxxx|71[027]x|715xx|7[2-5]xxxxxx|70[1-9]xxxxxxxx|0441[027]x|04415xx|0[1-9]xxxxxxxx|9xxxx|(81038>)0[1-9]xxxxxxxx|810xxxxxxxx.

 

  • Upvote 1
Link to comment
Share on other sites

16 minutes ago, gaaronk said:

Ну у меня специфические задачи. Мне гарное аппарате (dect или проводной) довести до asterisk, который и держит все линии и сам везде маршрутизирует. С учетом что звонки внутренние, офис, РФ, Украина, то пока вот так:

2xxx|8[3-9]xxxxxxxxx|71[027]x|715xx|7[2-5]xxxxxx|70[1-9]xxxxxxxx|0441[027]x|04415xx|0[1-9]xxxxxxxx|9xxxx|(81038>)0[1-9]xxxxxxxx|810xxxxxxxx.

Вообще можно ужать, например (0[1-9]|70[1-9]|810|(81038>)0[1-9])xxxxxxxx. Даже, может, проще читать будет (спорно, конечнео).

Но, наверное, нужно будет увеличить размер поля.

Link to comment
Share on other sites

Если такие вложенные замены можно делать, то конечно можно ужать. Я просто копипастил из linksys с конвертацией из его формата.

Вопрос решится так же тем что цена трубка + донгл оказалось больше чем новый Panasonic TGP500 (удалось найти). 

  • Upvote 1
Link to comment
Share on other sites

  • 1 month later...

"Глухой абонент"

Всем привет, имею связку трёх черных роутеров: 

Ultra II (3.4.6) + Dect Plus + Panasonic 1105
Keenetic III (2.11.D.6.0-3) + офисный проводной панасоник через FXS порт.
Viva (2.11.D.6.0-3) + Dect Plus + Panasonic 1105

на ультре установлен локальный астериск, сервер SSTP, кинетик и вива к нему клиентами впн, настроены маршруты между подсетями,  tcp, idp, imcp - всё туда-сюда ходит нормально. Между ультрой и кинетиком связь отличная, а абонент вивы никого не слышит - ни ультру, ни кинетик, ни при входящем, ни при исходящем

ранее выскакивала подобная проблема, но в том случае линии были внешними и настроены на оператора ZADARMA и все дело в итоге оказалось во включенном NAT у провайдера проблемной стороны.

Что безрезультатно применялось:

1. удалялся, возвращался компонент sip-alg (при удалении связь вообще пропала),

2. применялась команда ip sip alg direct-media 

3. игрался с кодеками (но дект-трубки поддерживают только G.711U)

4. менял порты прокси сервера и сервера регистрации

не знаю, важно ли, но в логе глухого абонента зеленым шрифтом есть такие записи:

Скрытый текст

File read failed for /tmp/nvox.phonebook
Авг 9 17:39:43 nvox
Cannot open phonebook file
Авг 9 17:39:43 nvox
File read failed for /tmp/nvox.history_calls
Авг 9 17:39:43 nvox
Cannot open calls history file

В чем может быть проблема, что нужно проверить/подкрутить ?

в аттачах скрины настроек линий

 

ULTRA_PHONE.jpg

Keenetic III_PHONE.jpg

VIVA_PHONE.jpg

Link to comment
Share on other sites

@BL63Включите, пожалуйста, опцию "узнавать свой публичный IP-адрес от SIP-сервера" в настройках линии на Viva.

Если не поможет - снимите self-test для Viva, надо:

1) включить отладочный режим на Viva
2) подождать 30 секунд
3) сделать исходящий вызов с Viva, при котором отсутствует слышимость
4) после завершения вызова выключить отладочный режими, прислать файл self-test (скрытым сообщением в форуме или личным сообщением)

https://help.keenetic.com/hc/ru/articles/360000873379-Диагностика

Link to comment
Share on other sites

еще небольшой затык - не знаю, в эту ветку, ли, поправьте

после перехода на локальный астериск у  всех абонентов (dect, аналового телефона, софтового sip-клиента) нет прерывистых гудков исходящего вызова:

т.е. , выбрал абонента из записной книги, нажал кнопку вызова, после этого звучит 1 гудок (его генерирует сама трубка наверное) и дальше тишина - непонятно, идет вызов или нет, до тех пор, пока на другой стороне не снимут трубку.

почему так ?

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...