VIDEOCHAT  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

Дайте вводную по окс-7

Новичком считается только что прочитавший «Астериск - будущее телефонии»
http://asterisk.ru/knowledgebase/books
и пытающийся сделать большее

Модераторы: april22, Zavr2008

Iskatel
Сообщения: 34
Зарегистрирован: 29 янв 2022, 10:41

Re: Дайте вводную по окс-7

Сообщение Iskatel »

Делал несколько попыток читать Гольдштейна, как-то не идёт, такое впечатление, что там о каких-то абстракциях говорится, без примеров, без всего. Ещё книга, которую рекоммендовали - А. Росляков "Общеканальная система сигналлизации №7".
Но давайте разбирать, самый нижний уровень, MTP1, физический, то есть медный кабель, должно быть описание какая жила в кабеле что передаёт, вроде слышал, что в E1 используется совсем другая обжимка чем в Ethernet, но не нашёл где про это написано.
Да я вижу выше в дискуссии было написано, что E1 это лишь физика, но окс-7 может работать и поверх IP, но опять же утверждение какое-то абстрактное, осмыслить его без примеров - невозможно.
Далее, электрические сигналлы разделяются по таймслотам - на каком уровне происходит разделение? И в первой книге Гольдштейна не упомянается слово таймслот, зато там есть такие термины как: звено передачи данных, сигнальное звено, пучок сигнальных звеньев и група сигнальных звеньев, что есть что?
Далее, передача самих сигналлов - это самый высший уровень, пользовательский, то есть протоколы TUP и ISUP? Маршрутизация находится тут же? Можно пример какие команды должны пройти когда звонок приходит через E1, а уходит в SIP?
ded
Сообщения: 15621
Зарегистрирован: 26 авг 2010, 19:00

Re: Дайте вводную по окс-7

Сообщение ded »

Цифровой_поток_E1

Физика Е1 PRI проста: есть по оптике, есть по коаксиалу, а есть по витой паре. В первых двух случаях используются медиа-конвертеры/трансиверы. В последнем случае используются две витые пары, одна для передачи (transmit - Тх), другая для приёма - (receive - Rx). Стандартно обжимаются в RJ-45 / RJ-48 прямым ходом (1-2) (4-5) или кроссом. Последний вариант используется в одной фишке также как loopback, для тестирования интерфейса.

Изображение

окс-7 поверх IP - это SIP-I / SIP-T, расширенный вариант SIP куда встроены сообщения ISUP.
Протокол_установления_сеанса#SIP-T_и_SIP-I
Аватара пользователя
dimondack
Сообщения: 62
Зарегистрирован: 16 сен 2019, 02:40

Re: Дайте вводную по окс-7

Сообщение dimondack »

Книжка А. Росляков "Общеканальная система сигналлизации №7"
https://disk.yandex.ru/i/Kovw_ufhCpfAwQ
Iskatel
Сообщения: 34
Зарегистрирован: 29 янв 2022, 10:41

Re: Дайте вводную по окс-7

Сообщение Iskatel »

А вот и с первой проблемой столкнулся. В окс-7 ведь, конкретно в ISUP есть же такое понятие как тип номера: International, National, Subscriber,.. а в SIP такой сущности нет. Стоит E1-шлюз, к нему подключён астериск, обнаружил что когда приходят международные входящие звонки, то CALLERID их в cdr астериска пропечатывается как "anonymous", в то время как в cdr шлюза он пропечатывается как номер.
ded
Сообщения: 15621
Зарегистрирован: 26 авг 2010, 19:00

Re: Дайте вводную по окс-7

Сообщение ded »

Пробуйте зацепить инвайт такого вызова, вы увидите, что номер может присутствовать скорее всего в другом поле, RPID. Его можно выцепить из любого поля, лишь бы был.
Если нет - сообщения ISUP вы в Астериске не увидите. E1-шлюз, к к которому подключён астериск, не передаёт их в SIP-T, SIP-I (см. википедию), поэтому они могут теряться.
Iskatel
Сообщения: 34
Зарегистрирован: 29 янв 2022, 10:41

Re: Дайте вводную по окс-7

Сообщение Iskatel »

INVITE выцепил в дампе, но там везде anonymous

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

Frame 166: 873 bytes on wire (6984 bits), 873 bytes captured (6984 bits)
Ethernet II, Src: JuniperN_6b:77:80 (c0:bf:a7:6b:77:80), Dst: VMware_f4:10:fd (00:0c:29:f4:10:fd)
802.1Q Virtual LAN, PRI: 0, DEI: 0, ID: 3053
Internet Protocol Version 4, Src: 10.0.1.2, Dst: 172.31.23.18
User Datagram Protocol, Src Port: 5060, Dst Port: 5060
Session Initiation Protocol (INVITE)
    Request-Line: INVITE sip:74983006044@172.31.23.18:5060 SIP/2.0
        Method: INVITE
        Request-URI: sip:74983006044@172.31.23.18:5060
            Request-URI User Part: 74983006044
            Request-URI Host Part: 172.31.23.18
            Request-URI Host Port: 5060
        [Resent Packet: False]
    Message Header
        Via: SIP/2.0/UDP 10.0.1.2:5060;branch=z9hG4bK751e9446;rport
            Transport: UDP
            Sent-by Address: 10.0.1.2
            Sent-by port: 5060
            Branch: z9hG4bK751e9446
            RPort: rport
        Max-Forwards: 70
        From: <sip:anonymous@10.0.1.2>;tag=as6952f93b
            SIP from address: sip:anonymous@10.0.1.2
                SIP from address User Part: anonymous
                SIP from address Host Part: 10.0.1.2
            SIP from tag: as6952f93b
        To: <sip:74983006044@172.31.23.18:5060>
            SIP to address: sip:74983006044@172.31.23.18:5060
                SIP to address User Part: 74983006044
                SIP to address Host Part: 172.31.23.18
                SIP to address Host Port: 5060
        Contact: <sip:anonymous@10.0.1.2:5060>
            Contact URI: sip:anonymous@10.0.1.2:5060
                Contact URI User Part: anonymous
                Contact URI Host Part: 10.0.1.2
                Contact URI Host Port: 5060
        Call-ID: 48d8d8c56813edbf17a741e5485b18d3@10.0.1.2:5060
        [Generated Call-ID: 48d8d8c56813edbf17a741e5485b18d3@10.0.1.2:5060]
        CSeq: 102 INVITE
            Sequence Number: 102
            Method: INVITE
        User-Agent: CCM4.0
        Date: Sat, 11 Nov 2023 08:37:12 GMT
        Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH, MESSAGE
        Supported: replaces, timer
        Content-Type: application/sdp
        Content-Length: 264
    Message Body
ded
Сообщения: 15621
Зарегистрирован: 26 авг 2010, 19:00

Re: Дайте вводную по окс-7

Сообщение ded »

Из поля Request-URI User Part можно выцепить номер 74983006044 через фцнкцию SIP_HEADER()
Эта функция может использоваться как для получения значения заголовка, так и для установки значения заданного заголовка.

*CLI> show function SIP_HEADER,
или, ещё лучше - сразу получить названия всех пользовательских заголовков которые пришли о вышестоящей АТС:
Function_SIP_HEADERS
вставить её перед инвайтом и получить список в виде
SIP_HEADERS(prefix)
Возможно даже получить сразу полный вид через
NoOp(SIP_HEADERS(all)) - но не пробовал.

Затем переслать значение в переменную Set(CALLERID(num)=${SIP_HEADERS(Request-URI-User-Part )}) или в каком там она виде прибегает.
Iskatel
Сообщения: 34
Зарегистрирован: 29 янв 2022, 10:41

Re: Дайте вводную по окс-7

Сообщение Iskatel »

Возможно даже получить сразу полный вид через
NoOp(SIP_HEADERS(all)) - но не пробовал.
Что NoOp(${SIP_HEADERS(all)}), что NoOp(${SIP_HEADERS(x-header)}) пустую строку выводят
ded
Сообщения: 15621
Зарегистрирован: 26 авг 2010, 19:00

Re: Дайте вводную по окс-7

Сообщение ded »

Iskatel писал(а):Что NoOp(${SIP_HEADERS(all)}), что NoOp(${SIP_HEADERS(x-header)})
Вы приводите вывод переменной
${SIP_HEADERS(all)}), а я указывал на функцию. Ищите примеры.
*CLI> core show function SIP_HEADER

-= Info about function 'SIP_HEADER' =-

[Synopsis]
Gets the specified SIP header from an incoming INVITE message.

[Description]
Since there are several headers (such as Via) which can occur multiple times,
SIP_HEADER takes an optional second argument to specify which header with that
name to retrieve. Headers start at offset '1'.
This function does not access headers from the REFER message if the call was
transferred. To obtain the REFER headers, set the dialplan variable
${GET_TRANSFERRER_DATA} to the prefix of the headers of the REFER message that
you need to access; for example, 'X-' to get all headers starting with 'X-'.
The variable must be set before a call to the application that starts the
channel that may eventually transfer back into the dialplan, and must be
inherited by that channel, so prefix it with the '_' or '__' when setting (or
set it in the pre-dial handler executed on the new channel). To get all headers
of the REFER message, set the value to '*'. Headers are returned in the form of
a dialplan hash TRANSFER_DATA, and can be accessed with the functions
${HASHKEYS(TRANSFER_DATA)} and, e. g., ${HASH(TRANSFER_DATA,X-That-Special-Head
r)}.
Please also note that contents of the SDP (an attachment to the SIP request)
can't be accessed with this function.

[Syntax]
SIP_HEADER(name[,number])

[Arguments]
number
If not specified, defaults to '1'.
Ответить
© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH