О деактивации форума Eltex

Уважаемые коллеги! В связи с потерей актуальности данного ресурса, нами было принято решение о частичной деактивации форума Eltex. Мы отключили функции регистрации и создания новых тем, а также возможность оставлять сообщения. Форум продолжит работу в "режиме чтения", так как за долгие годы работы здесь накопилось много полезной информации и ответов на часто встречающиеся вопросы.

Мы активно развиваем другие каналы коммуникаций, которые позволяют более оперативно и адресно консультировать наших клиентов. Если у вас возникли вопросы по работе оборудования, вы можете обратиться в техническую поддержку Eltex, воспользовавшись формой обращения на сайте компании или оставить заявку в системе Service Desk. По иным вопросам проконсультируют наши менеджеры коммерческого отдела: eltex@eltex-co.ru.

SMG 2016 Анонимные вызовы Анти АОН anonymous@anonymous.invalid

ECSS-10, TAU.IP, SMG, RG
andrsharov
Сообщения: 10
Зарегистрирован: 10 мар 2020 15:03
Reputation: 0

SMG 2016 Анонимные вызовы Анти АОН anonymous@anonymous.invalid

Сообщение andrsharov » 17 сен 2020 18:19

Здравствуйте!

Проблема: при входящем вызове на Eltex SMG 2016 от абонента с включенным антиопределителем номера, Eltex передает не все поля Contact в Header.

Вводные данные:
Оператор местной телефонной связи.
Eltex SMG-2016.
Версия ПО: ECSS-10 V.3.18.0.3969 2016/PBX/SORM/VAS/REC/IVR Build: Jul 20 2020 16:07:52
Присоединяющий оператор: Beeline
Схема трафика: Beeline <-SIP-> SMG-2016 <-SIP-> Asterisk(PJSIP) <-SIP-> Абоненты .

Входящий вызов от Beeline в сторону SMG 2016 приходит со следующими полями

Код: Выделить всё

    Message Header
        Via: SIP/2.0/UDP 8.8.8.8:5060;branch=z9hG4bKfupkf53tnn74v979q9r344qrs;Role=3;Hpt=8e58_16;TRC=ffffffff-ffffffff
        Record-Route: <sip:8.8.8.8:5060;transport=udp;lr;Hpt=8e58_16;CxtId=4;TRC=ffffffff-ffffffff;X-HwB2bUaCookie=4673>
        Call-ID: isbcuoczkpzqzo4yhr1qosr114sqchzz4qfo@SoftX3000
        [Generated Call-ID: isbcuoczkpzqzo4yhr1qosr114sqchzz4qfo@SoftX3000]
        From: Anonymous <sip:anonymous@anonymous.invalid;cpc-rus=1>;tag=z140uyyp-CC-27
            SIP Display info: Anonymous
            SIP from address: sip:anonymous@anonymous.invalid;cpc-rus=1
                SIP from address User Part: anonymous
                SIP from address Host Part: anonymous.invalid
                SIP From URI parameter: cpc-rus=1
            SIP from tag: z140uyyp-CC-27
        To: <sip:4957777777@8.8.4.4;user=phone>
        CSeq: 1 INVITE
        Allow: INVITE,ACK,OPTIONS,BYE,CANCEL,REGISTER,INFO,PRACK,SUBSCRIBE,NOTIFY,UPDATE,MESSAGE,REFER
        Contact: <sip:Anonymous@8.8.8.8:5060;transport=udp;Hpt=8e58_16;CxtId=4;TRC=ffffffff-ffffffff>
            Contact URI: sip:Anonymous@8.8.8.8:5060;transport=udp;Hpt=8e58_16;CxtId=4;TRC=ffffffff-ffffffff
                Contact URI User Part: Anonymous
                Contact URI Host Part: 8.8.8.8
                Contact URI Host Port: 5060
                Contact URI parameter: transport=udp
                Contact URI parameter: Hpt=8e58_16
                Contact URI parameter: CxtId=4
                Contact URI parameter: TRC=ffffffff-ffffffff
        Max-Forwards: 68
        Supported: 100rel,timer
        User-Agent: Huawei SoftX3000 V300R011
        Session-Expires: 3600
        Min-SE: 600
        Privacy: user
        Content-Length: 276
        Content-Type: application/sdp
    Message Body


Но далее выходит с не полным набором значений в поле Contact

Код: Выделить всё

Frame 1: 902 bytes on wire (7216 bits), 902 bytes captured (7216 bits)
Ethernet II, Src: EltexEnt_8b:4f:0a (a8:f9:4b:8b:4f:0a), Dst: c2:cc:da:c8:6a:24 (c2:cc:da:c8:6a:24)
Internet Protocol Version 4, Src: 77.88.8.8, Dst: 77.88.8.2
User Datagram Protocol, Src Port: 5060, Dst Port: 5060
Session Initiation Protocol (INVITE)
    Request-Line: INVITE sip:74957777777@77.88.8.2:5060;user=phone SIP/2.0
    Message Header
        Via: SIP/2.0/UDP 77.88.8.8:5060;rport;branch=z9hG4bK-o638868-1828
            Transport: UDP
            Sent-by Address: 77.88.8.8
            Sent-by port: 5060
            RPort: rport
            Branch: z9hG4bK-o638868-1828
        From: "Anonymous" <sip:77.88.8.8;user=phone>;tag=o1828p0D1719D0t7r638831
            SIP Display info: "Anonymous"
            SIP from address: sip:77.88.8.8;user=phone
                SIP from address Host Part: 77.88.8.8
                SIP From URI parameter: user=phone
            SIP from tag: o1828p0D1719D0t7r638831
        To: <sip:74957777777@77.88.8.2;user=phone>
            SIP to address: sip:74957777777@77.88.8.2;user=phone
                SIP to address User Part: 74957777777
                SIP to address Host Part: 77.88.8.2
                SIP To URI parameter: user=phone
        Call-ID: 1600-332168-638677
        [Generated Call-ID: 1600-332168-638677]
        CSeq: 2 INVITE
            Sequence Number: 2
            Method: INVITE
        User-Agent: smg_pa_sip 3.18.0.63
        Max-Forwards: 29
        Contact: <sip:@77.88.8.8:5060>
            Contact URI: sip:@77.88.8.8:5060
                Contact URI Host Part: 77.88.8.8
                Contact URI Host Port: 5060
        Accept: multipart/mixed, application/sdp
        Allow: INVITE, ACK, BYE, CANCEL, PRACK, REGISTER, INFO, REFER, NOTIFY, OPTIONS, UPDATE
        Supported: replaces
        X-UniqueTag: 110000d15f632188365515439d437001
        Content-Type: application/sdp
        Content-Length: 236
    Message Body
        Session Description Protocol


Asterisk почему-то это поле Contact не нравится , и он в консоли он выдает ошибку:

Код: Выделить всё

[Sep 16 17:15:00] ERROR[601]: pjproject: <?>:           sip_transport.c Error processing 860 bytes packet from UDP 77.88.8.8:5060 : PJSIP syntax error exception when parsing 'Contact' header on line 9 col 15:


Т.е. с таким полем Contact все работает

Код: Выделить всё

Contact: <sip:79995557788@77.88.8.8:5060>


А вот с таким полем Contact, работать не хочет:

Код: Выделить всё

Contact: <sip:@77.88.8.8:5060>


По-идее поле Contact , должно приходить в формате

Код: Выделить всё

Contact: <sip:Anonymous@77.88.8.8:5060>


Но из-за того что Anonymous пропущено , Asterisk отказывается принимать вызов.
Как заставить SMG 2016 формировать поле Contact по-другому ?

andrsharov
Сообщения: 10
Зарегистрирован: 10 мар 2020 15:03
Reputation: 0

Re: SMG 2016 Анонимные вызовы Анти АОН anonymous@anonymous.invalid

Сообщение andrsharov » 17 сен 2020 19:17

Вот тут
https://community.asterisk.org/t/asterisk-16-pjsip-invalid-value-error-exception-when-parsing-contact-header/84201/11
целое обсуждение на эту тему.

И там к однозначному выводу не пришли.
Грубо говоря есть парсер sip_transport.c , когда он парсит значение Contact , то ожидает получить, например, 8 полей , а получает 7 полей. Поэтому и выводит эту ошибку.

В Asterisk в файле pjsip.conf в секции [global] есть 2 параметра , значения которых подставляются в это поле при исходящих INVITE.

Код: Выделить всё

default_from_user=asterisk ;
default_realm=asterisk ;


И соответственно Asterisk сам ждет , чтобы при входящих INVITE эти поля ВСЕГДА были заполнены.

Т.е. когда поле sip.contact.user заполнить нечем , asterisk там всегда подставляет значение из параметров выше, в нашем случае это "asterisk" .
И тоже самое ждет от встречной стороны.

Нужно заставить Eltex SMG-2016 как-то заполнять это поле.

andrsharov
Сообщения: 10
Зарегистрирован: 10 мар 2020 15:03
Reputation: 0

Re: SMG 2016 Анонимные вызовы Анти АОН anonymous@anonymous.invalid

Сообщение andrsharov » 17 сен 2020 22:52

Вроде нашел где можно модифицировать SIP Header: "Расширенные настройки протокола SIP"

В инструкции пункт
3.1.5.3.1.5 Вкладка «Расширенные настройки» .

Но правила модификации такие скудные , не понимаю как написать условие .

К тому же:
Список обязательных заголовков сообщений SIP, запрещённых для игнорирования и транзита: via, from, to, call-id, cseq, contact, content-type, content-length.


Я только могу воспользоваться правилами модификации.

$ – оставить последующий текст;
! – удалить оставшийся текст;
+(АБВ) – добавить указанный текст;
-(АБВ) – удалить указанный текст.


Либо можно в этом месте использовать переменные ? Нужна переменная содержащая:

Код: Выделить всё

SIP Display info: "Anonymous"


Было бы не плохо изобразить в этом поле , что-то типа:

Код: Выделить всё

if (isempty($sipheader:Contact[URI_User_Part] = TRUE))  $sipheader:Contact[URI_User_Part] = "Anonymous"

andrsharov
Сообщения: 10
Зарегистрирован: 10 мар 2020 15:03
Reputation: 0

Re: SMG 2016 Анонимные вызовы Анти АОН anonymous@anonymous.invalid

Сообщение andrsharov » 17 сен 2020 23:04

Еще раз вот такое поле Contact Asterisk понимает :

Код: Выделить всё

Contact: <sip:79994442389@10.26.2.1:5060>
    Contact URI: sip:79994442389@10.26.2.1:5060
        Contact URI User Part: 79994442389
        Contact URI Host Part: 10.26.2.1
        Contact URI Host Port: 5060



А вот такое поле уже нет. Т.к. user пустое .

Код: Выделить всё

        Contact: <sip:10.26.2.1:5060>
            Contact URI: sip:10.26.2.1:5060
                Contact URI Host Part: 10.26.2.1
                Contact URI Host Port: 5060

Dmitriy_eltex
Сообщения: 1234
Зарегистрирован: 28 окт 2014 08:53
Reputation: 10

Re: SMG 2016 Анонимные вызовы Анти АОН anonymous@anonymous.invalid

Сообщение Dmitriy_eltex » 18 сен 2020 10:42

Здравствуйте.

Просьба завести заявку:
https://eltex-co.ru/support/
Приложить туда:
1) Конфигурацию Вашей SMG (Сервис->Управление файлами конфигурации->Скачать);
2) TCP дамп неудачного звонка с интерфейса bond1 (Раздел РСАР трассировки);
3) Лог PBX_PSTN неудачного звонка все уровни 1 (Раздел PBX трассировки).

Подумаем, что можно сделать.
Дмитрий Закурдаев / Элтекс / Сервисный центр VoIP

andrsharov
Сообщения: 10
Зарегистрирован: 10 мар 2020 15:03
Reputation: 0

Re: SMG 2016 Анонимные вызовы Анти АОН anonymous@anonymous.invalid

Сообщение andrsharov » 19 сен 2020 22:46

Здравствуйте, Dmitriy_eltex .

Заявку оставил.

Также заметил, что и в поле From: также отсутствует User часть. Хотя Asterisk на это не ругается, но было-бы неплохо и там дописать Anonymous в User части.

Т.е. вот вызов, когда нет функции Анти АОН (Все работает)

Код: Выделить всё

From: <sip:79994442389@10.26.2.1;user=phone>;tag=o1823p0D1724D0t7r271621
    SIP from address: sip:79994442389@10.26.2.1;user=phone
        SIP from address User Part: 79994442389
        SIP from address Host Part: 10.26.2.1
        SIP From URI parameter: user=phone
    SIP from tag: o1823p0D1724D0t7r271621


А вот вызов, когда Анти АОН включен (Не работает).

Код: Выделить всё

From: "Anonymous" <sip:10.26.2.1;user=phone>;tag=o1949p0D1598D0t7r173519
    SIP Display info: "Anonymous"
    SIP from address: sip:10.26.2.1;user=phone
        SIP from address Host Part: 10.26.2.1
        SIP From URI parameter: user=phone
    SIP from tag: o1949p0D1598D0t7r173519


Я бы привел к виду:

Код: Выделить всё

From: <sip:Anonymous@10.26.2.1;user=phone>;tag=o1823p0D1724D0t7r271621
    SIP from address: sip:Anonymous@10.26.2.1;user=phone
        SIP from address User Part: Anonymous
        SIP from address Host Part: 10.26.2.1
        SIP From URI parameter: user=phone
    SIP from tag: o1823p0D1724D0t7r271621


Либо к такому:

Код: Выделить всё

From: "Anonymous" <sip:Anonymous@10.26.2.1;user=phone>;tag=o1823p0D1724D0t7r271621
    SIP Display info: "Anonymous"
    SIP from address: sip:Anonymous@10.26.2.1;user=phone
        SIP from address User Part: Anonymous
        SIP from address Host Part: 10.26.2.1
        SIP From URI parameter: user=phone
    SIP from tag: o1823p0D1724D0t7r271621

andrsharov
Сообщения: 10
Зарегистрирован: 10 мар 2020 15:03
Reputation: 0

Re: SMG 2016 Анонимные вызовы Анти АОН anonymous@anonymous.invalid

Сообщение andrsharov » 14 янв 2021 02:14

Здравствуйте, коллеги.
Проблему решили.

Приведу цитату из инструкции:
3.1.4.2 Описание маски номера и ее синтаксис

(-) – маска, используемая только в таблицах модификаторов номера CgPN для вызовов без номера
вызывающего абонента. Позволяет добавить номер вызывающего абонента, если он отсутствовал, а
также задать индикаторы для этого номера.


В таблицу модификаторов добавил еще один модификатор out_a_local_anonymouse :
Заполнили поля:
Отбор номера. Маска номера: (-)
Модификация CgPN. Правило модификации для CgPN: $+0

Т.е. по сути к пустому полю добавляем цифру 0 и все. Все просто оказалось.

Ну и данный модификатор повесил на требуемую транковую группу. На вкладке "Исходящая связь":
Модификаторы исходящей связи. CgPN. out_a_local_anonymouse.

Остался один вопрос: Существует ли, какой-либо закон, либо правило, какой номер должен определяться ? Ну т.е. я сделал цифру 0. А может быть нужно какой-то определенный номер ? (Anonymouse , Private Number , или тому подобное ? ) Есть ли какой-либо закон, который это регламентирует?


Вернуться в «Оборудование VoIP»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 12 гостей