Страница 1 из 1
DID и таблица cel
Добавлено: 31 окт 2017, 11:42
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 пусто.
Любой подсказке буду рад.
Re: DID и таблица cel
Добавлено: 31 окт 2017, 11:46
ded
callbackextension = "Номер_куда_звонят"
Re: DID и таблица cel
Добавлено: 31 окт 2017, 13:10
pavelbek
В переменных канала в callbackextension= присутствует номер.
https://yadi.sk/i/Ly045RWn3PG744
Re: DID и таблица cel
Добавлено: 31 окт 2017, 13:17
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)
Re: DID и таблица cel
Добавлено: 31 окт 2017, 14:46
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)
Re: DID и таблица cel
Добавлено: 31 окт 2017, 14:58
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)