URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID6
Нить номер: 15068
[ Назад ]

Исходное сообщение
"Марщрутизация звонка в зависимости от caller ID"

Отправлено IAKOR , 14-Дек-07 21:51 
Добрый вечер!
Проблема следующего характера:
Как прописать маршрутизацию исходящего звонка в зависимости от Caller ID?

В частности есть:
3 номера подключены к АТС Panas600 он подключен по E1 (QSIGMaster) к Cisco2811
она соединяется по Eth с Cisco2801, которая в свою очередь подключена аналогично
по e1 к Panas200

          CO1                                                                                                                       TA 2222  
1TG           \                                                                                                                            |
          CO2 - [PanasTDA600]---e1---[Cisco2811]----eth----[Cisco 2801]---e1---[PanasTDA200]
                  /                                                                                                                            |
2TG  CO3                                                                                                                       TA 2111  


Звонки пользователей в город с аппаратов подключеных к TDA 200 (TA 2222, TA 2111) проходят через Panas200, последовательно через кошки и выходят в город через 1 TG на Panas600:

Диалпиры кошек для звонков:
[Cisco 2801]
dial-peer voice 9 voip
description Call to City
destination-pattern 9[1-5,9]......
session target ipv4:192.168.195.1
dtmf-relay h245-alphanumeric
fax protocol t38 ls-redundancy 0 hs-redundancy 0 fallback cisco
ip qos dscp cs5 media
ip qos dscp cs3 signaling

[Cisco 2811]
dial-peer voice 9 pots
description Call to City
huntstop
destination-pattern 9[1-5,9]......
no digit-strip
direct-inward-dial
port 0/3/0:15

Нужно чтобы звонок в город с ТА 2111 выходил через 2TG (CO3):
для этого создал правило замены 9 на 802 (номер TG), и создал еще один диалпир:

[Cisco 2811]
translation-rule 1
Rule 1 ^9 802

dial-peer voice 92 pots
description Call to City throw TG2
huntstop
answer-address 2111
destination-pattern 9[1-5,9]......
translate-outgoing called 1
no digit-strip
port 0/3/0:15

Но при звонке с номера TA 2111 выбирается произвольно то 9 то 92 диалпир,
соотвественно выход осуществляется то по 1TG то по 2TG тоже самое и для аппарата TA 2222.

Получается что при выборе диалпира не учитывается answer-address?

Вот лог по диалпиру при звонке:

007877: Dec 14 22:46:55 SAMDT: //-1/xxxxxxxxxxxx/DPM/dpAssociateIncomingPeerCore:   Calling Number=1901, Called Number=, Voice-Interface=0x46E0E450,   Timeout=TRUE, Peer Encap Type=ENCAP_VOICE, Peer Search Type=PEER_TYPE_VOICE,   Peer Info Type=DIALPEER_INFO_SPEECH
007878: Dec 14 22:46:55 SAMDT: //-1/xxxxxxxxxxxx/DPM/dpAssociateIncomingPeerCore:   Result=Success(0) after DP_MATCH_ANSWER; Incoming Dial-peer=92
007879: Dec 14 22:46:55 SAMDT: //-1/C6927BD684CC/DPM/dpMatchPeersCore:   Calling Number=, Called Number=9, Peer Info Type=DIALPEER_INFO_SPEECH
007880: Dec 14 22:46:55 SAMDT: //-1/C6927BD684CC/DPM/dpMatchPeersCore:   Match Rule=DP_MATCH_DEST; Called Number=9
007881: Dec 14 22:46:55 SAMDT: //-1/C6927BD684CC/DPM/dpMatchPeersCore:   Result=Partial Matches(1) after DP_MATCH_DEST
007882: Dec 14 22:46:55 SAMDT: //-1/C6927BD684CC/DPM/dpMatchPeersMoreArg:   Result=MORE_DIGITS_NEEDED(1)
007883: Dec 14 22:46:55 SAMDT: //-1/C6927BD684CC/DPM/dpMatchPeersCore:   Calling Number=, Called Number=92, Peer Info Type=DIALPEER_INFO_SPEECH
007884: Dec 14 22:46:55 SAMDT: //-1/C6927BD684CC/DPM/dpMatchPeersCore:   Match Rule=DP_MATCH_DEST; Called Number=92
007885: Dec 14 22:46:55 SAMDT: //-1/C6927BD684CC/DPM/dpMatchPeersCore:   Result=Partial Matches(1) after DP_MATCH_DEST
007886: Dec 14 22:46:55 SAMDT: //-1/C6927BD684CC/DPM/dpMatchPeersMoreArg:   Result=MORE_DIGITS_NEEDED(1)
007887: Dec 14 22:46:55 SAMDT: //-1/C6927BD684CC/DPM/dpMatchPeersCore:   Calling Number=, Called Number=924, Peer Info Type=DIALPEER_INFO_SPEECH
007888: Dec 14 22:46:55 SAMDT: //-1/C6927BD684CC/DPM/dpMatchPeersCore:   Match Rule=DP_MATCH_DEST; Called Number=924
007889: Dec 14 22:46:55 SAMDT: //-1/C6927BD684CC/DPM/dpMatchPeersCore:   Result=Partial Matches(1) after DP_MATCH_DEST
007890: Dec 14 22:46:55 SAMDT: //-1/C6927BD684CC/DPM/dpMatchPeersMoreArg:   Result=MORE_DIGITS_NEEDED(1)
007891: Dec 14 22:46:55 SAMDT: //-1/C6927BD684CC/DPM/dpMatchPeersCore:   Calling Number=, Called Number=9248, Peer Info Type=DIALPEER_INFO_SPEECH
007892: Dec 14 22:46:55 SAMDT: //-1/C6927BD684CC/DPM/dpMatchPeersCore:   Match Rule=DP_MATCH_DEST; Called Number=9248
007893: Dec 14 22:46:55 SAMDT: //-1/C6927BD684CC/DPM/dpMatchPeersCore:   Result=Partial Matches(1) after DP_MATCH_DEST
007894: Dec 14 22:46:55 SAMDT: //-1/C6927BD684CC/DPM/dpMatchPeersMoreArg:   Result=MORE_DIGITS_NEEDED(1)
007895: Dec 14 22:46:56 SAMDT: //-1/C6927BD684CC/DPM/dpMatchPeersCore:   Calling Number=, Called Number=92482, Peer Info Type=DIALPEER_INFO_SPEECH
007896: Dec 14 22:46:56 SAMDT: //-1/C6927BD684CC/DPM/dpMatchPeersCore:   Match Rule=DP_MATCH_DEST; Called Number=92482
007897: Dec 14 22:46:56 SAMDT: //-1/C6927BD684CC/DPM/dpMatchPeersCore:   Result=Partial Matches(1) after DP_MATCH_DEST
007898: Dec 14 22:46:56 SAMDT: //-1/C6927BD684CC/DPM/dpMatchPeersMoreArg:   Result=MORE_DIGITS_NEEDED(1)
007899: Dec 14 22:46:56 SAMDT: //-1/C6927BD684CC/DPM/dpMatchPeersCore:   Calling Number=, Called Number=924827, Peer Info Type=DIALPEER_INFO_SPEECH
007900: Dec 14 22:46:56 SAMDT: //-1/C6927BD684CC/DPM/dpMatchPeersCore:   Match Rule=DP_MATCH_DEST; Called Number=924827
007901: Dec 14 22:46:56 SAMDT: //-1/C6927BD684CC/DPM/dpMatchPeersCore:   Result=Partial Matches(1) after DP_MATCH_DEST
007902: Dec 14 22:46:56 SAMDT: //-1/C6927BD684CC/DPM/dpMatchPeersMoreArg:   Result=MORE_DIGITS_NEEDED(1)
007903: Dec 14 22:46:56 SAMDT: //-1/C6927BD684CC/DPM/dpMatchPeersCore:   Calling Number=, Called Number=9248278, Peer Info Type=DIALPEER_INFO_SPEECH
007904: Dec 14 22:46:56 SAMDT: //-1/C6927BD684CC/DPM/dpMatchPeersCore:   Match Rule=DP_MATCH_DEST; Called Number=9248278
007905: Dec 14 22:46:56 SAMDT: //-1/C6927BD684CC/DPM/dpMatchPeersCore:   Result=Partial Matches(1) after DP_MATCH_DEST
007906: Dec 14 22:46:56 SAMDT: //-1/C6927BD684CC/DPM/dpMatchPeersMoreArg:   Result=MORE_DIGITS_NEEDED(1)
007907: Dec 14 22:46:56 SAMDT: //-1/C6927BD684CC/DPM/dpMatchPeersCore:   Calling Number=, Called Number=92482786, Peer Info Type=DIALPEER_INFO_SPEECH
007908: Dec 14 22:46:56 SAMDT: //-1/C6927BD684CC/DPM/dpMatchPeersCore:   Match Rule=DP_MATCH_DEST; Called Number=92482786
007909: Dec 14 22:46:56 SAMDT: //-1/C6927BD684CC/DPM/dpMatchPeersCore:   Result=Success(0) after DP_MATCH_DEST
007910: Dec 14 22:46:56 SAMDT: //-1/C6927BD684CC/DPM/dpMatchPeersMoreArg:
   Result=SUCCESS(0)
   List of Matched Outgoing Dial-peer(s):
     1: Dial-peer Tag=9
     2: Dial-peer Tag=92
007911: Dec 14 22:46:56 SAMDT: //-1/C6927BD684CC/DPM/dpMatchPeersCore:   Calling Number=, Called Number=92482786, Peer Info Type=DIALPEER_INFO_SPEECH
007912: Dec 14 22:46:56 SAMDT: //-1/C6927BD684CC/DPM/dpMatchPeersCore:   Match Rule=DP_MATCH_DEST; Called Number=92482786
007913: Dec 14 22:46:56 SAMDT: //-1/C6927BD684CC/DPM/dpMatchPeersCore:   Result=Success(0) after DP_MATCH_DEST
007914: Dec 14 22:46:56 SAMDT: //-1/C6927BD684CC/DPM/dpMatchPeersMoreArg:
   Result=SUCCESS(0)
   List of Matched Outgoing Dial-peer(s):
     1: Dial-peer Tag=92
     2: Dial-peer Tag=9


Подскажите где копать.


Содержание

Сообщения в этом обсуждении
"Марщрутизация звонка в зависимости от caller ID"
Отправлено an , 14-Дек-07 22:13 
попробуте так:

destination-pattern 9[1-59]T


"Марщрутизация звонка в зависимости от caller ID"
Отправлено IAKOR , 15-Дек-07 12:19 
>попробуте так:
>
>destination-pattern 9[1-59]T

Аналогично: выбиирается один из двух диалпиров. Но не всегда тот который нужно. Рэндомно.
А нужно чтобы выбирался конкретный пир в зависимости от того с какого номера набирается...


"Марщрутизация звонка в зависимости от caller ID"
Отправлено an , 15-Дек-07 15:03 
>>попробуте так:
>>
>>destination-pattern 9[1-59]T
>
>Аналогично: выбиирается один из двух диалпиров. Но не всегда тот который нужно.
>Рэндомно.
>А нужно чтобы выбирался конкретный пир в зависимости от того с какого
>номера набирается...

судя по трассировке из первого поста calling number пустой, поэтому видимо он и не сравнивается с answer-adress. И как результат выбираются dialpeer равновероятно. А на панасонике вообще CLID прописан для этих линий?


"Марщрутизация звонка в зависимости от caller ID"
Отправлено IAKOR , 15-Дек-07 15:10 
>[оверквотинг удален]
>>>destination-pattern 9[1-59]T
>>
>>Аналогично: выбиирается один из двух диалпиров. Но не всегда тот который нужно.
>>Рэндомно.
>>А нужно чтобы выбирался конкретный пир в зависимости от того с какого
>>номера набирается...
>
>судя по трассировке из первого поста calling number пустой, поэтому видимо он
>и не сравнивается с answer-adress. И как результат выбираются dialpeer равновероятно.
>А на панасонике вообще CLID прописан для этих линий?

Первая строчка: <Calling Number=1901> - просто вставил лог когда звонил с другого номера
(это удаленный узел и я там присутствовать не мог поэтому звонили с тех номеров с которых было возможно). А далее в логе номер пропадает.
Более того вначале показывает входящий правильный диалпир потом а потом выбирается рэндомно.


"Марщрутизация звонка в зависимости от caller ID"
Отправлено an , 15-Дек-07 16:23 
>[оверквотинг удален]
>>судя по трассировке из первого поста calling number пустой, поэтому видимо он
>>и не сравнивается с answer-adress. И как результат выбираются dialpeer равновероятно.
>>А на панасонике вообще CLID прописан для этих линий?
>
>Первая строчка: <Calling Number=1901> - просто вставил лог когда звонил с другого номера
>(это удаленный узел и я там присутствовать не мог поэтому звонили с
>тех номеров с которых было возможно). А далее в логе номер
>пропадает.
>Более того вначале показывает входящий правильный диалпир потом а потом выбирается рэндомно.
>

так вот надо ИМХО чтобы сначала цифры накопились а потом сравнивалось. Для этого Т поставить в destination-patetrn и трассировку посмотреть. А когда сравнение идет в процессе набора может получиться чертичто. Впрочем, утверждать ничего не берусь.


"Марщрутизация звонка в зависимости от caller ID"
Отправлено an , 15-Дек-07 18:07 
...и главное то я пропустил :) - dialpeer бывают входящие и исходящие.

http://www.cisco.com/en/US/tech/tk652/tk90/technologies_tech...

answer-address проверяется для входящего диалпира, то есть пишем на 2811 както так

dial-peer voice 1 voip
huntstop
translation-profile incoming FROM2111
answer-address 2111

и в translation-profile FROM2111 прописать добавления префикса выхода на нужное направлние.
  



"Марщрутизация звонка в зависимости от caller ID"
Отправлено IAKOR , 17-Дек-07 10:00 
>[оверквотинг удален]
>answer-address проверяется для входящего диалпира, то есть пишем на 2811 както так
>
>
>dial-peer voice 1 voip
>huntstop
>translation-profile incoming FROM2111
>answer-address 2111
>
>и в translation-profile FROM2111 прописать добавления префикса выхода на нужное направлние.
>

Добрый день. Спасибо всем, особенно "an". Проблема решена.
Именно таким способом:
Т.к. диалпиры бываю входящие и исходящие, то нужно чтобы префикс добавлялся на входящем диалпире. А далее он идет на дополнительно созданный исходящий диалпир с уже измененым номером:

На удаленном узле оставляем все без изменений
[Cisco2801]
dial-peer voice 9 voip
description Call to City
destination-pattern 9[1-5,9]......
session target ipv4:192.168.195.1
dtmf-relay h245-alphanumeric
fax protocol t38 ls-redundancy 0 hs-redundancy 0 fallback cisco
ip qos dscp cs5 media
ip qos dscp cs3 signaling

На ближнем узле добавляем translation-profile и два диалпира
[Cisco2811]
voice translation-rule 1
rule 1 /^9/ /802/
!
voice translation-profile PROM2111
translate called 1
!
! Создаем входящий диалпир для изменения номера (замены 9 на 802 - выход на другую TG на Panas600)
!
dial-peer voice 802 voip
translation-profile incoming PROM2111
answer-address 2111
!
! Создаем диалпир на выход в город через 2TG на Panas600
!
dial-peer voice 92 pots
description Call to City throw TG2
huntstop
destination-pattern 802[1-5,9]......
no digit-strip
port 0/3/0:15

Насчет собранного номера (T вместо ...)  - в этом случае уже не играет роли, т.к. номер собирается, но префикс уже пришел, и  следовательно впри выборе исходящего диалпира остается только вариант 92 :-)



"Марщрутизация звонка в зависимости от caller ID"
Отправлено AS , 28-Апр-08 11:25 
>Вот лог по диалпиру при звонке:
>
>007877: Dec 14 22:46:55 SAMDT: //-1/xxxxxxxxxxxx/DPM/dpAssociateIncomingPeerCore:   Calling Number=1901, Called Number=,

Есть встречный вопрос: а как такой лог получить ? Надо посмотреть, а, пока, найти не могу. Это в syslog валиться должно, или на консоль ?


"Марщрутизация звонка в зависимости от caller ID"
Отправлено Iakor , 28-Апр-08 11:51 
>>Вот лог по диалпиру при звонке:
>>
>>007877: Dec 14 22:46:55 SAMDT: //-1/xxxxxxxxxxxx/DPM/dpAssociateIncomingPeerCore:   Calling Number=1901, Called Number=,
>
>Есть встречный вопрос: а как такой лог получить ? Надо посмотреть, а,
>пока, найти не могу. Это в syslog валиться должно, или на
>консоль ?

Нужно в консоле включить debug dialpeer (или debug voip dialpeer all) затем комманда terminal monitor и лог будет валиться в терминал.