Страница 1 из 2
Передача имени вызывающего абонента по PRI
Добавлено: 10 июл 2018, 11:31
GSerge
Не смог найти как это реализовать. Имею следующее:
Код: Выделить всё
ast-m212*CLI> dahdi show version
DAHDI Version: 2.11.1 Echo Canceller: MG2
ast-m212*CLI> dahdi show status
Description Alarms IRQ bpviol CRC Fra Codi Options LBO
Dynamic 'eth' span at 'eth1/00:00:aa:aa OK 0 0 0 CAS Unk 0 db (CSU)/0-133 feet (DSX-1)
Dynamic 'eth' span at 'eth1/00:00:aa:aa OK 0 0 0 CAS Unk 0 db (CSU)/0-133 feet (DSX-1)
ast-m212*CLI> pri show version
libpri version: 1.6.0
В SETUP ожидаю увидеть DISPLAY, но есть только:
Код: Выделить всё
PRI Span: 2 > [6c 06 21 81 35 32 33 38]
PRI Span: 2 > Calling Party Number (len= 8) [ Ext: 0 TON: National Number (2) NPI: ISDN/Telephony Numbering Plan (E.164/E.163) (1)
PRI Span: 2 > Presentation: Presentation allowed, User-provided, verified and passed (1) '5238' ]
PRI Span: 2 > [70 05 80 32 32 31 31]
PRI Span: 2 > Called Party Number (len= 7) [ Ext: 1 TON: Unknown Number Type (0) NPI: Unknown Number Plan (0) '2211' ]
PRI Span: 2 > [a1]
PRI Span: 2 > Sending Complete (len= 1)
PRI Span: 2 q931.c:6531 q931_setup: Call 40926 enters state 1 (Call Initiated). Hold state: Idle
-- Called DAHDI/G1/2211
То есть имя вызывающего абонента не было передано.
Но зато в трассировке DSS появляется номер вызываемого абонента:
Код: Выделить всё
PRI Span: 2 < [4c 05 a1 32 32 31 31]
PRI Span: 2 < Connected Number (len= 7) [ Ext: 1 TON: National Number (2) NPI: ISDN/Telephony Numbering Plan (E.164/E.163) (1) '2211' ]
PRI Span: 2 < [96]
PRI Span: 2 < Locking Shift (len=01): Requested codeset 6
PRI Span: 2 < [28 0f 7e 41 48 8b 50 45 45 42 41 20 4d 41 50 8e 99]
PRI Span: 2 < Display (CS6) (len=15) [ ~AH▒PEEBA MAP▒▒ ]
PRI Span: 2 Received message for call 0xab653820 on link 0xa49e1c4 TEI/SAPI 0/0
PRI Span: 2 -- Processing IE 30 (cs0, Progress Indicator)
PRI Span: 2 -- Processing IE 76 (cs0, Connected Number)
PRI Span: 2 -- Processing IE 40 (cs6, Display (CS6))
PRI Span: 2 q931.c:9014 post_handle_q931_message: Call 40926 enters state 8 (Connect Request). Hold state: Idle
Span 2: Processing event PRI_EVENT_ANSWER(8)
Есть ли идеи или решения как реализовать мое желание? Что для этого потребуется?
---
От модератора:
Используйте теги ! Сообщение отредактировано.
Re: Передача имени вызывающего абонента по PRI
Добавлено: 10 июл 2018, 11:43
ded
AFAIK - имя можно передать только в QSIG, а в PRI - никак.
Re: Передача имени вызывающего абонента по PRI
Добавлено: 10 июл 2018, 12:40
GSerge
Дело в том, что несколько станций AVAYA подключены по PRI через M200 и они успешно передают имя. Реализовано это путем передачи проприетарного заголовка Avaya Display в 40 информационном элементе, согласно рекомендации ITU-T Q.931.
Q.931
Protocol discriminator: Q.931
Call reference value length: 2
Call reference flag: Message sent to originating side
Call reference value: 0544
Message type: CONNECT (0x07)
Progress indicator
Connected number: '3287'
Locking shift to codeset 6: Information elements specific to the local network
Avaya Display '~OC\216\205OBA TAT\226\231H'
Information element: Avaya Display
Length: 15
Avaya Display: ~OC\357\277\275\357\277\275OBA TAT\357\277\275\357\277\275H
Этот же заголовок Астериск умеет доставать из сообщений DSS1, согласно снятой с него трассировки.
Код: Выделить всё
PRI Span: 2 < [28 0f 7e 41 48 8b 50 45 45 42 41 20 4d 41 50 8e 99]
PRI Span: 2 < Display (CS6) (len=15) [ ~AH▒PEEBA MAP▒▒ ]
...
PRI Span: 2 -- Processing IE 40 (cs6, Display (CS6))
Но это он получил от M200 через PRI информацию о вызываемом абоненте, а вот отправить имя вызывающего не решается..
Re: Передача имени вызывающего абонента по PRI
Добавлено: 10 июл 2018, 12:59
ded
По идее - если транзитно вклюить - должен передавать все поля 1:1. Но можно попробовать? Два эксперимента
1) сделать контекст для Avaya1 например
Код: Выделить всё
[incoming-A1]
exten => _X.,1,Dial(DAHDI/g1/${EXTEN}) ; при условии, что в Е1 порт DAHDI/g1 подключена Avaya2 например
2)
Код: Выделить всё
[incoming-A1]
exten => _X.,1,Set(CALLERID(name)=Test Name) ; попробовать передать латиницей, вдруг там проблема с кодировками?
exten => _X.,n,Dial(DAHDI/g1/${EXTEN}) ; при условии, что в Е1 порт DAHDI/g1 подключена Avaya2 например
http://www.convertstring.com/EncodeDecode/HexDecode вам в помощь для 28 0f 7e 41 48 8b 50 45 45 42 41 20 4d 41 50 8e 99
Re: Передача имени вызывающего абонента по PRI
Добавлено: 10 июл 2018, 16:58
GSerge
Такой эксперимент не сделать, потому что наши AVAYA имеют только транзитное подключение через M200. Имя на латинице, но тем не менее принудительно задать имя Set(CALLERID(name)=..) пробовал, как вы и советовали. И ниже еще пример. Для сравнения в самом конце приведу пример входящего звонка по PRI от М200 на Asterisk. Имя принимается
Код: Выделить всё
;--- TRUNK PRI M200
TRUNK=DAHDI/G1
exten => _[1234578]XXX,1,NoOp(Call to ${TRUNK} with ${CALLERID(num)} and ${CALLERID(name)})
same => n,DIAL(${TRUNK}/${EXTEN},90,tT)
same => n,Hangup()
== Using SIP RTP CoS mark 5
-- Executing [1003@imswitch:1] NoOp("SIP/mswitch-00000443", "[color=#FF00BF]Call to DAHDI/G1 with 5139 and Mironov Ivan[/color]") in new stack
-- Executing [1003@imswitch:2] Dial("SIP/mswitch-00000443", "[color=#FF00BF]DAHDI/G1/1003,90,tT[/color]") in new stack
PRI Span: 2 -- Making new call for cref 34676
-- Requested transfer capability: 0x00 - SPEECH
PRI Span: 2
PRI Span: 2 > DL-DATA request
PRI Span: 2 > Protocol Discriminator: Q.931 (8) len=31
PRI Span: 2 > TEI=0 Call Ref: len= 2 (reference 1908/0x774) (Sent from originator)
PRI Span: 2 > Message Type: SETUP (5)
PRI Span: 2 TEI=0 Transmitting N(S)=49, window is open V(A)=49 K=7
PRI Span: 2
PRI Span: 2 > Protocol Discriminator: Q.931 (8) len=31
PRI Span: 2 > TEI=0 Call Ref: len= 2 (reference 1908/0x774) (Sent from originator)
PRI Span: 2 > Message Type: [b][color=#FF00BF]SETUP[/color][/b] (5)
PRI Span: 2 > [04 03 80 90 a3]
PRI Span: 2 > Bearer Capability (len= 5) [ Ext: 1 Coding-Std: 0 Info transfer capability: Speech (0)
PRI Span: 2 > Ext: 1 Trans mode/rate: 64kbps, circuit-mode (16)
PRI Span: 2 > User information layer 1: A-Law (35)
PRI Span: 2 > [18 03 a1 83 8b]
PRI Span: 2 > Channel ID (len= 5) [ Ext: 1 IntID: Implicit Other(PRI) Spare: 0 Preferred Dchan: 0
PRI Span: 2 > ChanSel: As indicated in following octets
PRI Span: 2 > Ext: 1 Coding: 0 Number Specified Channel Type: 3
PRI Span: 2 > Ext: 1 Channel: 11 Type: CPE]
PRI Span: 2 > [6c 06 21 81 35 31 33 39]
PRI Span: 2 > Calling Party Number (len= 8) [ Ext: 0 TON: National Number (2) NPI: ISDN/Telephony Numbering Plan (E.164/E.163) (1)
PRI Span: 2 > Presentation: Presentation allowed, User-provided, verified and passed (1) '5139' ]
PRI Span: 2 > [70 05 80 31 30 30 33]
PRI Span: 2 > Called Party Number (len= 7) [ Ext: 1 TON: Unknown Number Type (0) NPI: Unknown Number Plan (0) '1003' ]
PRI Span: 2 > [a1]
PRI Span: 2 > Sending Complete (len= 1)
PRI Span: 2 q931.c:6531 q931_setup: Call 34676 enters state 1 (Call Initiated). Hold state: Idle
-- Called DAHDI/G1/1003
Пример входящего звонка с PRI
Код: Выделить всё
PRI Span: 2
PRI Span: 2 < Protocol Discriminator: Q.931 (8) len=55
PRI Span: 2 < TEI=0 Call Ref: len= 2 (reference 10530/0x2922) (Sent from originator)
PRI Span: 2 < Message Type: [b][color=#FF00BF]SETUP[/color][/b] (5)
PRI Span: 2 < [a1]
PRI Span: 2 < Sending Complete (len= 1)
PRI Span: 2 < [04 03 80 90 a3]
PRI Span: 2 < Bearer Capability (len= 5) [ Ext: 1 Coding-Std: 0 Info transfer capability: Speech (0)
PRI Span: 2 < Ext: 1 Trans mode/rate: 64kbps, circuit-mode (16)
PRI Span: 2 < User information layer 1: A-Law (35)
PRI Span: 2 < [18 03 a9 83 9d]
PRI Span: 2 < Channel ID (len= 5) [ Ext: 1 IntID: Implicit Other(PRI) Spare: 0 Exclusive Dchan: 0
PRI Span: 2 < ChanSel: As indicated in following octets
PRI Span: 2 < Ext: 1 Coding: 0 Number Specified Channel Type: 3
PRI Span: 2 < Ext: 1 Channel: 29 Type: CPE]
PRI Span: 2 < [6c 0c 21 83 39 32 31 39 30 38 35 39 33 36]
PRI Span: 2 < Calling Party Number (len=14) [ Ext: 0 TON: National Number (2) NPI: ISDN/Telephony Numbering Plan (E.164/E.163) (1)
PRI Span: 2 < Presentation: Presentation allowed, Network provided (3) '[b][color=#FF00BF]9XXXXXXXXX[/color][/b]' ]
PRI Span: 2 < [70 05 80 35 32 33 38]
PRI Span: 2 < Called Party Number (len= 7) [ Ext: 1 TON: Unknown Number Type (0) NPI: Unknown Number Plan (0) '[b][color=#FF00BF]5238[/color][/b]' ]
PRI Span: 2 < [96]
PRI Span: 2 < Locking Shift (len=01): Requested codeset 6
PRI Span: 2 < [28 0f 4d 32 30 30 20 50 43 4d 31 30 26 50 43 4d 31]
PRI Span: 2 < Display (CS6) (len=15) [b][color=#FF00BF][ M200 PCM10&PCM1 ][/color][/b]
PRI Span: 2 -- Making new call for cref 10530
PRI Span: 2 Received message for call 0xb6c1b400 on link 0xb696ee84 TEI/SAPI 0/0
PRI Span: 2 -- Processing Q.931 Call Setup
PRI Span: 2 -- Processing IE 161 (cs0, Sending Complete)
PRI Span: 2 -- Processing IE 4 (cs0, Bearer Capability)
PRI Span: 2 -- Processing IE 24 (cs0, Channel ID)
PRI Span: 2 -- Processing IE 108 (cs0, Calling Party Number)
PRI Span: 2 -- Processing IE 112 (cs0, Called Party Number)
PRI Span: 2 -- Processing IE 40 (cs6, Display (CS6))
PRI Span: 2 q931.c:8894 post_handle_q931_message: Call 10530 enters state 6 (Call Present). Hold state: Idle
Span 2: Processing event PRI_EVENT_RING(5)
....
PRI Span: 2 > Message Type: CALL PROCEEDING (2)
....
-- Accepting call from '[color=#FF00BF]9XXXXXXXXX[/color]' to '[color=#FF00BF]5238[/color]' on channel 0/29, span 2
-- Executing [5238@gorod:1] Answer("DAHDI/i2/[color=#FF00BF]9XXXXXXXXX[/color]-ec8", "") in new stack
PRI Span: 2 q931.c:6081 q931_connect: Call 10530 enters state 8 (Connect Request). Hold state: Idle
---
От модератора:
Используйте теги ! Сообщение отредактировано.
Re: Передача имени вызывающего абонента по PRI
Добавлено: 10 июл 2018, 18:29
ded
1) А зачем вы делаете
[gorod]
exten _XXXX,1,Answer ??
2) Если принимает имя M200 PCM10&PCM1
PRI Span: 2 < [70 05 80 35 32 33 38]
PRI Span: 2 < Called Party Number (len= 7) [ Ext: 1 TON: Unknown Number Type (0) NPI: Unknown Number Plan (0) '5238' ]
PRI Span: 2 < [96]
PRI Span: 2 < Locking Shift (len=01): Requested codeset 6
PRI Span: 2 < [28 0f 4d 32 30 30 20 50 43 4d 31 30 26 50 43 4d 31]
PRI Span: 2 < Display (CS6) (len=15) [ M200 PCM10&PCM1 ]
то попробуйте его вопроизвести
[gorod]
exten _XXXX,1,NoOp(Caller ID is {CALLERID(all)})
Re: Передача имени вызывающего абонента по PRI
Добавлено: 11 июл 2018, 02:41
Zavr2008
QSIG на астере ставить надо. В этом случае в коде включается обработка.
Re: Передача имени вызывающего абонента по PRI
Добавлено: 11 июл 2018, 11:58
GSerge
ded писал(а):1) А зачем вы делаете
[gorod]
exten _XXXX,1,Answer ??
Не помню, эксперимент был какой-то наверное. Сейчас привел к виду:
exten => 5238,1,NoOp(Caller ID is ${CALLERID(all)})
same => n,DIAL(SIP/${EXTEN},60,Tt)
Вот полученный звонок:
-- Accepting call from '8123801340' to '5238' on channel 0/22, span 2
-- Executing [5238@gorod:1] NoOp("DAHDI/i2/812ххххххх-16fc", "Caller ID is "
M200 PCM10&PCM1" <812ххххххх>") in new stack
-- Executing [5238@gorod:2] Dial("DAHDI/i2/812ххххххх-16fc", "SIP/5238,60,Tt") in new stack
== Using SIP RTP CoS mark 5
-- Called SIP/5238
-- SIP/5238-0000073b is ringing
Zavr2008 писал(а):QSIG на астере ставить надо. В этом случае в коде включается обработка.
Пожалуйста, поясните подробнее, что Вы имели в виду.
Re: Передача имени вызывающего абонента по PRI
Добавлено: 11 июл 2018, 13:44
ded
Он имел ввиду - указать
switchtype=qsig
вместо
switchtype=euroisdn
на том порту Е1, куда хотите направлять присвоенные (или транзитные) имена в файле chan_dahdi.conf
А зачем вам М-200? Почему не соединить всё через E1 failover switch?
Re: Передача имени вызывающего абонента по PRI
Добавлено: 11 июл 2018, 15:30
GSerge
ded писал(а):А зачем вам М-200? Почему не соединить всё через E1 failover switch?
История корнями уходит в прошлый век и это все так слепилось. Сейчас проводится большая ревизия (но она продвигается довольно медленно), после которой и M200 и AVAYA должны уйти в прошлое. Но на переходной этап очень важно сохранить функционал по передаче имени, ибо сотрудники компании высказывают очень большое недовольство.
ded писал(а):Он имел ввиду - указать
switchtype=qsig
Но это же предполагает, что M200 тоже должна уметь работать по qsig и потребует переконфигурации?