VIDEOCHAT  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

DID и таблица cel

Проблемы Asterisk без вэб-оболочек и их решения

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

pavelbek
Сообщения: 19
Зарегистрирован: 15 сен 2017, 11:32

DID и таблица cel

Сообщение pavelbek »

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

Провайдер не присылает 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 пусто.

Любой подсказке буду рад.
ded
Сообщения: 15900
Зарегистрирован: 26 авг 2010, 19:00

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

Сообщение ded »

callbackextension = "Номер_куда_звонят"
pavelbek
Сообщения: 19
Зарегистрирован: 15 сен 2017, 11:32

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

Сообщение pavelbek »

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

https://yadi.sk/i/Ly045RWn3PG744
ded
Сообщения: 15900
Зарегистрирован: 26 авг 2010, 19:00

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

Сообщение ded »

А зачем такой трюк -?

Код: Выделить всё

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)
pavelbek
Сообщения: 19
Зарегистрирован: 15 сен 2017, 11:32

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

Сообщение pavelbek »

В транке много номеров поэтому не могу использовать 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)
ded
Сообщения: 15900
Зарегистрирован: 26 авг 2010, 19:00

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

Сообщение ded »

Если в транке много номеров, то можно убрать параметры
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)
Ответить