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

DID и таблица cel

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

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

DID и таблица cel

Сообщение pavelbek » 31 окт 2017, 12:42

Приветствую вас, коллеги.

Провайдер не присылает DID. Беру из sip заголовков.

From: < sip:77777777777@sip.server.com >;tag=блаблабла
To: "Номер_куда_звонят"< sip:логин@sip.server.com >


В настройках транка:
callbackextension = s
context = custom-get-did-from-rpid

В настройках dialplan'а:
[custom-get-did-from-rpid]
exten => s,1,Goto(from-trunk,+${SIP_HEADER(TO):1:11,1)


При такой конфигурации в таблице cdr если значение, но в таблице cel пусто.

Любой подсказке буду рад.
pavelbek
 
Сообщений: 19
Зарегистрирован: 15 сен 2017, 12:32

Re: DID и таблица cel

Сообщение ded » 31 окт 2017, 12:46

callbackextension = "Номер_куда_звонят"
ded
 
Сообщений: 15801
Зарегистрирован: 26 авг 2010, 19:00

Re: DID и таблица cel

Сообщение pavelbek » 31 окт 2017, 14:10

В переменных канала в callbackextension= присутствует номер.

https://yadi.sk/i/Ly045RWn3PG744
pavelbek
 
Сообщений: 19
Зарегистрирован: 15 сен 2017, 12:32

Re: DID и таблица cel

Сообщение ded » 31 окт 2017, 14:17

А зачем такой трюк -?
Код: выделить все
callbackextension = s
context = custom-get-did-from-rpid

В настройках dialplan'а:
[custom-get-did-from-rpid]
exten => s,1,Goto(from-trunk,+${SIP_HEADER(TO):1:11,1)

Есть ли у вас строка регистрации этого номера DID?
Если да, то параметр callbackextension = s не нужен
А нужно регистрировать
register => user:password@sip.server/DID_number

Или, если уже начали кастомные доработки, то надо добавлять значение DID из переменной канала в соответствующую клеточку в CEL - cid_dnid
Код: выделить все
mysql> show columns from cel;
+-------------+--------------+------+-----+---------+----------------+
| Field       | Type         | Null | Key | Default | Extra          |
+-------------+--------------+------+-----+---------+----------------+
| id          | int(11)      | NO   | PRI | NULL    | auto_increment |
| eventtype   | varchar(30)  | NO   |     | NULL    |                |
| eventtime   | datetime     | NO   |     | NULL    |                |
| cid_name    | varchar(80)  | NO   |     | NULL    |                |
| cid_num     | varchar(80)  | NO   |     | NULL    |                |
| cid_ani     | varchar(80)  | NO   |     | NULL    |                |
| cid_rdnis   | varchar(80)  | NO   |     | NULL    |                |
| cid_dnid    | varchar(80)  | NO   |     | NULL    |                |
| exten       | varchar(80)  | NO   |     | NULL    |                |
| context     | varchar(80)  | NO   | MUL | NULL    |                |
| channame    | varchar(80)  | NO   |     | NULL    |                |
| appname     | varchar(80)  | NO   |     | NULL    |                |
| appdata     | varchar(255) | NO   |     | NULL    |                |
| amaflags    | int(11)      | NO   |     | NULL    |                |
| accountcode | varchar(20)  | NO   |     | NULL    |                |
| uniqueid    | varchar(32)  | NO   | MUL | NULL    |                |
| linkedid    | varchar(32)  | NO   | MUL | NULL    |                |
| peer        | varchar(80)  | NO   |     | NULL    |                |
| userdeftype | varchar(255) | NO   |     | NULL    |                |
| extra       | varchar(512) | NO   |     | NULL    |                |
+-------------+--------------+------+-----+---------+----------------+
20 rows in set (0.00 sec)
ded
 
Сообщений: 15801
Зарегистрирован: 26 авг 2010, 19:00

Re: DID и таблица cel

Сообщение pavelbek » 31 окт 2017, 15:46

В транке много номеров поэтому не могу использовать register => user:password@sip.server/DID_number

Провайдер не присылает DID поэтому использую

В настройках транка:
callbackextension = s
context = custom-get-did-from-rpid

В настройках dialplan'а:
[custom-get-did-from-rpid]
exten => s,1,Goto(from-trunk,+${SIP_HEADER(TO):1:11,1)
pavelbek
 
Сообщений: 19
Зарегистрирован: 15 сен 2017, 12:32

Re: DID и таблица cel

Сообщение ded » 31 окт 2017, 15:58

Если в транке много номеров, то можно убрать параметры
registersip=yes
callbackextension=s
и сделать много доп. строк регистрации (если они вообще нужны) в кастомном sip_registration_custom.conf:
register => user:password@sip.server/DID_number1
register => user:password@sip.server/DID_number2
register => user:password@sip.server/DID_number3
register => user:password@sip.server/DID_number4

Может вам присылают вызовы вообще без регистрации?

Рецепт:
Код: выделить все
[custom-get-did-from-rpid]
exten => s,1,Set(FROM_DID=+${SIP_HEADER(TO):1:11,1)
exten => s,1,Goto(from-trunk,${FROM_DID},1)
ded
 
Сообщений: 15801
Зарегистрирован: 26 авг 2010, 19:00


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

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

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

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