понедельник, 18 ноября 2013 г.

Пример MySql запроса в Asterisk

exten => s,1,Answer
          exten => s,n,NoOp(${CALLERID(all)})
        ; Проверка есть ли оператор для обработки очереди
        exten => s,n,MYSQL(Connect connid HOSTNAME USERNAME PASSWORD asterisk)
        exten => s,n,MYSQL(Query resultid ${connid} SELECT count(uniqueid) as cnt from queue_member)
        exten => s,n,MYSQL(Fetch foundRow ${resultid} cnt)
        exten => s,n,MYSQL(Clear ${resultid})
        exten => s,n,MYSQL(Disconnect ${connid})
        exten => s,n,GotoIf($["${cnt}"!="0"]?success:nottime)
        exten => s,n(nottime),GoTo(awt_menu,main,1)
        exten => s,n(success),Playback(lode_menu_start_2_new)
        ; Если не ставил этот wait, то в 100 случаев если человек кладет трубку во время плейбека, то он все равно попадает в очередь
        exten => s,n,Wait(2)
        ; Приоритет для звонков с мобилы
        exten => s,n,Set(QueuePrio=)
        exten => s,n,Set(SubTel=${CALLERID(number):0:4})
        exten => s,n,Set(SubTel2=${CALLERID(number):0:3})
        exten => s,n,GotoIf($[$["${SubTel}"=="8029"] | $["${SubTel}"=="8033"] | $["${SubTel}"=="8044"] | $["${SubTel}"=="8025"] | ["${SubTel2}"=="829"] | $["${SubTel2}"

=="833"] | $["${SubTel2}"=="844"] | $["${SubTel2}"=="825"]]?queuehigh:checknext)

        exten => s,n(queuehigh),Set(QueuePrio=1)
        exten => s,n(checknext),NoOp(${QueuePrio})
        ; Добавление в очередь

        exten => s,n,Queue(main-queue-rt,t,,,,,,,,${QueuePrio})

        exten => s,n,Hangup

     

     

        exten => 3,1,Hangup

     

        exten => i,1,Playback(beep)

        exten => i,n,Hangup

     

        exten => h,1,Wait(1)

        exten => h,n,System(/usr/bin/lame -V0 /var/spool/asterisk/monitor/${UNIQUEID}.wav /var/www/localhost/htdocs/monitor/${UNIQUEID}.mp3)

        exten => h,n,MYSQL(Connect connid HOSTNAME USERNAME PASSWORD asterisk)

        exten => h,n,MYSQL(Query resultid ${connid} INSERT INTO queue_log (time, callid, event, data2) VALUES (DATE_FORMAT(NOW(),"%Y-%m-%d %H:%i:%s.%f"),’${UNIQUEID}’,'HANGUP’,'${CALLERID(all)}’))

        exten => h,n,MYSQL(Disconnect ${connid})

        exten => h,n,NoOp(ActionHangup Execute)

Комментариев нет:

Отправить комментарий