Страница 1 из 2

Как установить "правильное" имя при записи звонка

Добавлено: 16 дек 2016, 17:14
ingeneseti
Приветствую всех.

Извиняюсь что создал тему, искать реально некогда.(пока буду ждать ответов, все же поищу)

Итак задача:
1. Подключить к астериску номер 8-800. Сделано. Путем переадресации на городской номер СИП. Т.е. 8-800 переадресован на СИП, а СИП зарегистрирован в астериске. Еще есть городской СИП. Работает.
2. Получить на телефоне номер звонящего. Работает.
3. Получить в логе mysql запись о звонке: кто ответил на звонок. не работает.

Т.е. работает но не так как надо. Вместо "кому", получаем либо "s", либо групповой номер. И не понятно кто именно снял трубку(номер принимающего). А хотелось бы видеть в логе какой номер ответил на звонок.

Кусок из extensions.conf:

[sip-rtk]
exten => _X.,1,Answer()
exten => _X.,n,Set(CALLER=${CALLERID(num)}-${EXTEN})
exten => _X.,n,MixMonitor(data/${STRFTIME(,,%G/%m/%H_%M_%S)}_${CALLER}.wav)
exten => _X.,n,Queue(opt,t,,)
exten => _X.,n,Hangup()

[rtk]
exten => s,1,Answer()
exten => s,n,Set(CALLER=${CALLERID(num)}-${EXTEN})
exten => s,n,MixMonitor(data/${STRFTIME(,,%G/%m/%H_%M_%S)}_${CALLER}.wav)
exten => s,n,Dial(SIP/ХХХХ&SIP/ХХХХ&SIP/ХХХХ,60,Ttrm)
exten => s,n,Goto(rtk,s,3)
exten => s,n,Hangup()

Кусок лога звонка:

-- Executing [ХХХХХХХ@sip-rtk:1] Answer("SIP/sip-rt-00000fc6", "") in new stack
> 0x805cde000 -- Probation passed - setting RTP source address to 10.10.2.2:17900
-- Executing [ХХХХХХХ@sip-rtk:2] Set("SIP/sip-rt-00000fc6", "CALLER=8913ХХХХХХХ-ХХХХХХХ") in new stack ###При звонке с 8-800 будет так CALLER=89133856639-s
-- Executing [ХХХХХХХ@sip-rtk:3] MixMonitor("SIP/sip-rt-00000fc6", "data/2016/12/20_00_14_8913ХХХХХХХ-ХХХХХХХ.wav") in new stack
-- Executing [ХХХХХХХ@sip-rtk:4] Queue("SIP/sip-rt-00000fc6", "opt,t,,") in new stack
== Begin MixMonitor Recording SIP/sip-rt-00000fc6
-- Started music on hold, class 'default', on channel 'SIP/sip-rt-00000fc6'
-- Called SIP/ХХХХ
-- SIP/2623-00000fc7 is ringing
-- Stopped music on hold on SIP/sip-rt-00000fc6
== Spawn extension (sip-rtk, ХХХХХХХ, 4) exited non-zero on 'SIP/sip-rt-00000fc6'
== MixMonitor close filestream (mixed)
== End MixMonitor Recording SIP/sip-rt-00000fc6

Собственно вопрос: как сделать что бы в имени файла записи был номер ответившего?

Re: Как установить "правильное" имя при записи звонка

Добавлено: 16 дек 2016, 18:25
awsswa
не правильная строка регистрации и не правильный диалплан

Re: Как установить "правильное" имя при записи звонка

Добавлено: 16 дек 2016, 19:26
ded
+++
Как правильно читать Книгу о будущем
Как правильно готовить селёдку под шубой
Как правильно писать диал-план
(нужное дополнить)

Re: Как установить "правильное" имя при записи звонка

Добавлено: 17 дек 2016, 06:23
ingeneseti
awsswa писал(а):не правильная строка регистрации и не правильный диалплан
Хорошо. Спасибо за наводку.
Поправьте что не так:

register => 8800ХХХХХХХ:passgcP@XXXXXXX.20.rt.ru/
register => XXXXXXX:pass@xx.xx.x.x/XXXXXXX

Re: Как установить "правильное" имя при записи звонка

Добавлено: 17 дек 2016, 06:44
ingeneseti
Немного проясню:

register => 8800ХХХХХХХ:pass@ХХХХХХХ.20.rt.ru/ - при входящем звонке требует exten - s
register => XXXXXXX:pass@xx.xx.x.x/XXXXXXX - работает только в таком виде.

Re: Как установить "правильное" имя при записи звонка

Добавлено: 17 дек 2016, 10:20
virus_net
1. Если уж вы не читали книгу, то хотя бы прочтите коменты в sip.conf, ведь в них все это расписано:
PRIME_BBCODE_SPOILER_SHOW PRIME_BBCODE_SPOILER:
; Asterisk can register as a SIP user agent to a SIP proxy (provider)
; Format for the register statement is:
; register => [peer?][transport://]user[@domain][:secret[:authuser]]@host[:port][/extension][~expiry]

; Examples:
;
;register => 1234:password@mysipprovider.com
;
; This will pass incoming calls to the 's' extension
;
;
;register => 2345:password@sip_proxy/1234
;
; Register 2345 at sip provider 'sip_proxy'. Calls from this provider
; connect to local extension 1234 in extensions.conf, default context,
; unless you configure a [sip_proxy] section below, and configure a
; context.
2. Вы устанавливаете имя файла ДО того как выполняется Dial и конечно вы НЕ можете знать кто ответит.
Если вы хотите в названии иметь номер ответившего, то значит нужно переименовать файл ПОСЛЕ завершения разговора при выполнении exten h.
Упреждая вопрос "как": название файла загнать в переменную, как получить номер ответившего см. какие данные доступны используя Dumpchan, по значению переменной находите и переименовываете файл.

3.
${EXTEN}: The current extension, cannot be modified with the set command

Re: Как установить "правильное" имя при записи звонка

Добавлено: 17 дек 2016, 20:34
ingeneseti
Ооо... Блин...
Реально распишите, что надо сделать.
Ведь если ложится трубка(не важно с какой стороны) диал-план отрабатывает последнее правило. И не важно сколько там еще правил.
Поправьте если я не прав.

Re: Как установить "правильное" имя при записи звонка

Добавлено: 17 дек 2016, 20:50
ded
Если Вы не прав, то Вы - лев. Тоже неплохо, верно?
ingeneseti писал(а):Ведь если ложится трубка(не важно с какой стороны) диал-план отрабатывает последнее правило.
Именно. Последнее правило (или набор правил), которое отрабатывает если ложится трубка(не важно с какой стороны) -

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

exten => h,1 Set(FILENAME=..........)
exten => h,n,Hangup()
ingeneseti писал(а):register => 8800ХХХХХХХ:pass@ХХХХХХХ.20.rt.ru/ - при входящем звонке требует exten - s.
Немного проясню: Книгу о будущем телефонии всёже надо читать, а то будут продолжать тряпками закидывать.
register => 8800ХХХХХХХ:pass@ХХХХХХХ.20.rt.ru/8800ХХХХХХХ

Re: Как установить "правильное" имя при записи звонка

Добавлено: 17 дек 2016, 21:00
ingeneseti
register => 8800ХХХХХХХ:pass@ХХХХХХХ.20.rt.ru/8800ХХХХХХХ - в таком виде не регистрируется.

А книгу я прочту.
Всем спс.

Re: Как установить "правильное" имя при записи звонка

Добавлено: 17 дек 2016, 23:44
ded
Заглянул как мы настроили регистрацию номера 8800 у клиента от Ростелеком:
register=reg_name:secret@579451.16.rt.ru/88001000777
и всё работает.