Трубку кладёт респондент
как определить когда
Откуда: Украина
Сообщений: 17
|
Трубку кладёт респондент
Всем, доброго времени суток. В этой сфере я новичёк, поэтому заранее извеняюсь за возможно глупые вопросы.
В наследство достался скрипт, который пишет в базу время начала и время окончания разговора, но когда трубку ложит респондент выполнения скрипта прерывается - аозможно ли как то обработать данную ситуацию ?
Заранее спасибо.
|
Откуда: Украина
Сообщений: 7
|
Re: Трубку кладёт респондент
Возможно. В конце контекста своего уберите Hangup, вместо этого добавте экстеншин h. Он обрабатывает событие, когда ложат трубку. И ещё нужно обрабатывать переменную REASON. У себя такое делал, может решил и не канонически но работает. Думаю ключевых слов h extension, REASON variable Вам хватит.
|
Откуда: Украина
Сообщений: 17
|
Re: Трубку кладёт респондент
Спасибки за совет, если не затруднит - можете небольшой пример скинуть. Я так понимаю, что ситуация когда трубку кладёт оператор нужно обрабатівать аналогично ?
|
Откуда: Украина
Сообщений: 7
|
Re: Трубку кладёт респондент
exten => h, 1, GotoIf($[${ISNULL(${REASON})}=1]?continue:hangup)
exten => h, n(continue), Verbose(REASON = ${REASON})
exten => h, n, DeadAGI(set_result.sh,${CALLERID(number)})
exten => h, n(hangup), Hangup()
Вместо Verbose можете поставить своё, я так для примера втыкнул.
|
Откуда: Украина
Сообщений: 17
|
Re: Трубку кладёт респондент
Действительно "h" помогло - но к сожалению не до конца... Когда тестировали на одном операторе время окончания проставлялось корректно - а когда пустили на продакшн то имело место быть перкращение выполнения скрипта, и как результат запись окончания не проставилась ...
Может кто то сталкивался ? help ?
|
Откуда: Уфа
Сообщений: 5856
|
Re: Трубку кладёт респондент
может скрипт дефектный?
|
Откуда: Украина
Сообщений: 17
|
Re: Трубку кладёт респондент
Ну мне он достался в наследство... вроде работает так как хочиццо заказчику, вот только когда трубку клал "вызывающий" не проставляло время окончания...
Я лишь добавил следующее:
exten => h,1,GotoIf($[${REASON}=1]?2:5)
exten => h,2,MYSQL(Connect connid localhost auto passw0rd tel_number)
exten => h,3,MYSQL(Query resultid ${connid} UPDATE\ phone\ SET\ end_date_num=CURRENT_TIMESTAMP\,\ action_num=777\ where\ id=${id})
exten => h,4,MYSQL(Disconnect ${connid})
exten => h,5,Hangup()
|
Откуда: Уфа
Сообщений: 5856
|
Re: Трубку кладёт респондент
проверь правильность запроса, включи лог mysql и посмотри что передается
и какая ошибка в возвращается в астериск в full.log
|
Сообщений: 1573
|
Re: Трубку кладёт респондент
так вы напрямую пишите в базу, а не скрипт это делает ...
Покажите вывод CLI при таком вызове ...
И еще, вы уверены, что запись, которую вы обновляете уже есть в базе в это время?
|
Откуда: Украина
Сообщений: 17
|
Re: Трубку кладёт респондент
Фулл лог смогу включить, увы, только завтра - отпишусь...
Запись которую пытаюсь обновить в базе есть - потому как "необновлённая" она остаётся :(
Не знаю может не в том направлении смотрю но единстенное чем чичас изобилирует лог это меседжи типа:
1.app_dial.c: Unable to forward voice frame
2.app_addon_sql_mysql.c: mysql_real_connect(mysql,localhost,auto,dbpass,...,...) failed
3. Invalid result identifier 20025 passed in aMYSQL_clear
Identifier 20021, identifier_type 1 not found in identifier list
aMYSQL_query: Invalid connection identifier 20021 passed in aMYSQL_query
если 2-й пункт ещё мне интуитивно понятен, то 3-й мягкот говоря не совсем...
Это что ли пул какой то есть у астериска и в нём бытые соединения или как ?
|
|