а зачем СДР существует? у меня постгерс-сдр + тригеры.
и, кстати еще есть h-extension. выплняеться после hangup.
да и даил (г) продолажеться если трубку не ложила оригинирующая сторона.
баланс обновляеться системой автобалансировки нагрузки... типа не в реалтайм а от 1 до 30 секунд.
mthawk
meralp.s. я пока не нашел не одной задачи, для которой мне понадобилься бы agi-script. диалпланы со всеми задачами могут справиться.
А как насчет:
- по номеру, набранному абонентом определить префикс, по доступным префиксам выбрать оператора из базы предоставляющего этот префикс, найти самого дешевого (или качественного).
- по кол-ву денюжки на счету определить может ли товарисч звонить, предоплаченый, или кредитный этот юзер, или это VIP клиент, которому денюжку счетать не нужно - выставить тайм-аут звонка.
- по окончании все посчитать, положить в базу в заданном формате, и т.д. и т..п
;)
угу. спорим на 100 баксов что это в 20 строк extensions.conf вмещаеться все целиком?
правда потом кода sql еще строк 500... но это уже алгоритм выбора
аналогично предыдущему. запрос ПЕРЕД началом звонка из постгреса(процедура).
таймаут звонка выставляеться в команде диал... не надо для этого аги
по окончанию посчитать - сдр.( смотри выше)
все это есть.
самый простой случай выглядит так.
show dialplan SMIR-main
'_X.' =>
1. gosub(checkprefix|s|1) [pbx_config] ;проверить какой префикс у терминатора
2. SetCDRUserField(${prefix}${EXTEN}:193.243.152.XXX) [pbx_config] ; вот это для "посчитать"
3. Dial(SIP/${prefix}${EXTEN}@cisco||rgoS(${timelimit})) [pbx_config]
4. AppendCDRUserField(:${HANGUPCAUSE}:${DIALSTATUS}) [pbx_config]
5. Hangup() [pbx_config]
h =>
1. AppendCDRUserField(:${HANGUPCAUSE}:${DIALSTATUS}) [pbx_config]
считает только на основании userfield,account и billsec, для упрощения
есть дажже debby script(типо того который на tcl v cisco)...