ВидеоКонф(ВКС)  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

Передача имени вызывающего абонента по PRI

Проблемы и их решения Asterisk как такового

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

Передача имени вызывающего абонента по PRI

Сообщение GSerge » 10 июл 2018, 12:31

Не смог найти как это реализовать. Имею следующее:
Код: выделить все
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)


Есть ли идеи или решения как реализовать мое желание? Что для этого потребуется?

---
От модератора:
Используйте теги ! Сообщение отредактировано.
GSerge
 
Сообщений: 6
Зарегистрирован: 10 июл 2018, 12:00

Re: Передача имени вызывающего абонента по PRI

Сообщение ded » 10 июл 2018, 12:43

AFAIK - имя можно передать только в QSIG, а в PRI - никак.
ded
 
Сообщений: 15796
Зарегистрирован: 26 авг 2010, 19:00

Re: Передача имени вызывающего абонента по PRI

Сообщение GSerge » 10 июл 2018, 13:40

Дело в том, что несколько станций 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 информацию о вызываемом абоненте, а вот отправить имя вызывающего не решается..
GSerge
 
Сообщений: 6
Зарегистрирован: 10 июл 2018, 12:00

Re: Передача имени вызывающего абонента по PRI

Сообщение ded » 10 июл 2018, 13:59

По идее - если транзитно вклюить - должен передавать все поля 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
ded
 
Сообщений: 15796
Зарегистрирован: 26 авг 2010, 19:00

Re: Передача имени вызывающего абонента по PRI

Сообщение GSerge » 10 июл 2018, 17:58

Такой эксперимент не сделать, потому что наши 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


---
От модератора:
Используйте теги ! Сообщение отредактировано.
GSerge
 
Сообщений: 6
Зарегистрирован: 10 июл 2018, 12:00

Re: Передача имени вызывающего абонента по PRI

Сообщение ded » 10 июл 2018, 19:29

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)})
ded
 
Сообщений: 15796
Зарегистрирован: 26 авг 2010, 19:00

Re: Передача имени вызывающего абонента по PRI

Сообщение Zavr2008 » 11 июл 2018, 03:41

QSIG на астере ставить надо. В этом случае в коде включается обработка.
Российские шлюзы E1 Alvis-GW. Модернизация УПАТС с E1, Установка FreePBX, Системы антифрод "в разрыв" потоков E1 PRI / SS#7 ISUP.
Аватар пользователя
Zavr2008
 
Сообщений: 2158
Зарегистрирован: 27 янв 2011, 01:35

Re: Передача имени вызывающего абонента по PRI

Сообщение GSerge » 11 июл 2018, 12:58

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 на астере ставить надо. В этом случае в коде включается обработка.

Пожалуйста, поясните подробнее, что Вы имели в виду.
GSerge
 
Сообщений: 6
Зарегистрирован: 10 июл 2018, 12:00

Re: Передача имени вызывающего абонента по PRI

Сообщение ded » 11 июл 2018, 14:44

Он имел ввиду - указать
switchtype=qsig
вместо
switchtype=euroisdn
на том порту Е1, куда хотите направлять присвоенные (или транзитные) имена в файле chan_dahdi.conf

А зачем вам М-200? Почему не соединить всё через E1 failover switch?
ded
 
Сообщений: 15796
Зарегистрирован: 26 авг 2010, 19:00

Re: Передача имени вызывающего абонента по PRI

Сообщение GSerge » 11 июл 2018, 16:30

ded писал(а):А зачем вам М-200? Почему не соединить всё через E1 failover switch?

История корнями уходит в прошлый век и это все так слепилось. Сейчас проводится большая ревизия (но она продвигается довольно медленно), после которой и M200 и AVAYA должны уйти в прошлое. Но на переходной этап очень важно сохранить функционал по передаче имени, ибо сотрудники компании высказывают очень большое недовольство.

ded писал(а):Он имел ввиду - указать
switchtype=qsig

Но это же предполагает, что M200 тоже должна уметь работать по qsig и потребует переконфигурации?
GSerge
 
Сообщений: 6
Зарегистрирован: 10 июл 2018, 12:00

След.

Вернуться в Конфигурация и настройка Asterisk

Кто сейчас на форуме

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

© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH