Страница 2 из 2
Re: Дайте вводную по окс-7
Добавлено: 06 июл 2023, 18:05
Iskatel
Делал несколько попыток читать Гольдштейна, как-то не идёт, такое впечатление, что там о каких-то абстракциях говорится, без примеров, без всего. Ещё книга, которую рекоммендовали - А. Росляков "Общеканальная система сигналлизации №7".
Но давайте разбирать, самый нижний уровень, MTP1, физический, то есть медный кабель, должно быть описание какая жила в кабеле что передаёт, вроде слышал, что в E1 используется совсем другая обжимка чем в Ethernet, но не нашёл где про это написано.
Да я вижу выше в дискуссии было написано, что E1 это лишь физика, но окс-7 может работать и поверх IP, но опять же утверждение какое-то абстрактное, осмыслить его без примеров - невозможно.
Далее, электрические сигналлы разделяются по таймслотам - на каком уровне происходит разделение? И в первой книге Гольдштейна не упомянается слово таймслот, зато там есть такие термины как: звено передачи данных, сигнальное звено, пучок сигнальных звеньев и група сигнальных звеньев, что есть что?
Далее, передача самих сигналлов - это самый высший уровень, пользовательский, то есть протоколы TUP и ISUP? Маршрутизация находится тут же? Можно пример какие команды должны пройти когда звонок приходит через E1, а уходит в SIP?
Re: Дайте вводную по окс-7
Добавлено: 06 июл 2023, 23:29
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
Re: Дайте вводную по окс-7
Добавлено: 07 июл 2023, 16:23
dimondack
Книжка А. Росляков "Общеканальная система сигналлизации №7"
https://disk.yandex.ru/i/Kovw_ufhCpfAwQ
Re: Дайте вводную по окс-7
Добавлено: 09 ноя 2023, 18:04
Iskatel
А вот и с первой проблемой столкнулся. В окс-7 ведь, конкретно в ISUP есть же такое понятие как тип номера: International, National, Subscriber,.. а в SIP такой сущности нет. Стоит E1-шлюз, к нему подключён астериск, обнаружил что когда приходят международные входящие звонки, то CALLERID их в cdr астериска пропечатывается как "anonymous", в то время как в cdr шлюза он пропечатывается как номер.
Re: Дайте вводную по окс-7
Добавлено: 09 ноя 2023, 20:52
ded
Пробуйте зацепить инвайт такого вызова, вы увидите, что номер может присутствовать скорее всего в другом поле, RPID. Его можно выцепить из любого поля, лишь бы был.
Если нет - сообщения ISUP вы в Астериске не увидите. E1-шлюз, к к которому подключён астериск, не передаёт их в SIP-T, SIP-I (см. википедию), поэтому они могут теряться.
Re: Дайте вводную по окс-7
Добавлено: 11 ноя 2023, 11:50
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
Re: Дайте вводную по окс-7
Добавлено: 11 ноя 2023, 22:57
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 )}) или в каком там она виде прибегает.
Re: Дайте вводную по окс-7
Добавлено: 29 янв 2024, 12:44
Iskatel
Возможно даже получить сразу полный вид через
NoOp(SIP_HEADERS(all)) - но не пробовал.
Что NoOp(${SIP_HEADERS(all)}), что NoOp(${SIP_HEADERS(x-header)}) пустую строку выводят
Re: Дайте вводную по окс-7
Добавлено: 29 янв 2024, 14:23
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'.