Asterisk 11
Собственно, самописная срм, ложит .call файл куда следует, asterisk звонит локальному абоненту, тот берет трубку, asterisk звонит абоненту удаленному, тот берет трубку все ок, запись идет cdr 2 звонка, все ок.
проблема начинается если абонент трубку не взял, то в cdr не пишется плечо "Б" (звонок к клиенту), решил добавить опцию "g" в Dial, и дописать запись в MySQL db после звонка, теперь в базе статус всегда ANSWER и когда клиент взял трубку, и когда нажал сброс, в "h" тоже самое статус всегда ANSWER
[crm-perezvon]
exten => _380XXXXXXXXX,1,NoOP( CALL PEREZVON - ${EXTEN})
same => n,Set(CALLERID(name)=380001234567)
same => n,Set(CALLERID(num)=380001234567)
same => n,Macro(mixmonitor)
same => n,Dial(SIP/provider/${EXTEN},30,g,)
same => n,MYSQL(Connect connid localhost asterisk_db asterisk_db asterisk_db utf8)
same => n,MYSQL(Query resultid ${connid} INSERT INTO perezvon SET id='', timestart='${CDR(start)}', src='${CDR(src)}', dst='${EXTEN}', accountcode='${CDR(accountcode)}', dialstatus='${DIALSTATUS}')
same => n,MYSQL(Disconnect ${connid})
same = n,Hangup
[local]
exten => _XXXX,1,NoOP(LOCAL ${EXTEN})
same => n,Macro(mixmonitor)
same => n,Dial(SIP/${EXTEN})
same => n,Hangup()
и сам .call файл
Channel: Local/1000@local
MaxRetries: 0
RetryTime: 50
WaitTime: 30
Context: crm-perezvon
Extension: 380009998877
Account: code-id-12345
Callerid: 1000
Priority: 1
проблема в том что нужно потом понимать был ли удачный звонок оператора к клиенту или нет
Отправляйте канал в Local/othernum@othercontext/n, у вас будет вторая cdr с контекстом other_context. Там творите, что хотите.
Задан: 2018-11-27 12:50:36 +0400
Просмотрен: 3,303 раз
Обновлен: Nov 27 '18
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.
Вы хотите сделать Обратный вызов. Так у вас не получится. На форумах есть описание , как сделать так , чтобы отслеживать ответ оператора и делать вызов удаленному клиенту , только после этого ответа. Ищите.
zzuz ( 2018-11-27 13:44:29 +0400 )редактироватьДля начала добавьте h экстеншен в crm-perezvon .
zzuz ( 2018-11-27 13:45:13 +0400 )редактироватьh добавлял, там же тоже статус ANSWER в ${DIALSTATUS} и статистика операторов нормально отрабатывается, не понятно то что плечо которое в мир выходит....
и сейчас работает так, файл появился, дозвон на внутренний номер, трубку взяли? дозвон клиенту, тут все ок, не могу отследить - взял клиент трубку, или нет (в статистике CDR имеется ввиду там в любом случае ANSWER)
Maikl ( 2018-11-27 15:20:10 +0400 )редактироватьДумается Вы зря взялись за эту задачу.
zzuz ( 2018-11-27 15:21:51 +0400 )редактироватьПочему? Если знаете как, подскажите куда глянуть, а с высока так сказать может любой....
Maikl ( 2018-11-27 17:33:14 +0400 )редактироватьВо-первых, Вы не понимаете, как работает Originate по call файлам , которые Вы генерите. Во-вторых, Вы не понимаете , как работают каналы , тем более каналы на интерфейсе Local. В-третьих , Вы не умеете использовать канальные переменные , тем более использовать их между каналами. В-четвертых, Вы задаете вопрос не предоставив результатов ваших изысканий, заставляя участников этого ресурса гадать, что происходило в том или ином случае. В-пятых , название контекста наводит на мысль , что проект , который Вы реализуете - коммерческий.
В моем первом комментарии я указал , что нужно искать. Ищите , пробуйте.
zzuz ( 2018-11-27 17:47:32 +0400 )редактироватьСпасибо за ваш развернутый ответ, проект для приюта животных, срм писал человек который далеко от понимания работы ami - попросили помочь что бы можно было звонить из срм. Решил помочь бесплатно т.к. это волонтерский проект. Астериск настраивал там не я, багов было жуть, постарался причесать все, звонки пошли
Maikl ( 2018-11-27 19:05:12 +0400 )редактировать