LINUX.ORG.RU
ФорумAdmin

asterisk продолжить диалплан после того как вызывающий повесил трубку.

 


0

1

Добрый день.

Астериск работает на ael. Ситуация такая, при звонке на номер нужно определить статус звонка, был ли он отвечен или нет, если отвечен то нужно в базу данных это записать.

Проблема в том что когда вызов был отвечен, то далее по диалплану не идёт:

Dial (SIP/601,10,tm(moh1));
                  if ("${DIALSTATUS}" = "ANSWER"){
                      Set(ODBC_UPDATEREQPATH()=${REQPATH},${SRC});
                        Hangup();
                        };

Я нашел опцию g , которая позволяет продолжит диалплан после завершения звонка. Но к сожалению, если трубку повесил человек который звонил к нам ( к примеру с мобильного устройства ), то магия не случается, эта опция работает только для вызываемого абонента. в логе строка exited non-zero on

Не подскажите как же мне заставить понимать и передавать в базу данных успешный вызов?


Ответ на: комментарий от Turbid

Не очень в этом силён, но когда я делаю так :

context from-out-test {
        78121111111 => {
...
                Dial (SIP/601,10,tm(moh1));
                h => {
                  if ("${DIALSTATUS}" = "ANSWER"){
                        Set(ODBC_UPDATEREQPATH()=${REQPATH},${SRC});
                        Hangup();
                        };
};

};

Выдает syntax error, unexpected '=>', expecting '(' or ';' or '=' or ':'

madcry
() автор топика
Ответ на: комментарий от madcry

Со скобочками надо быть внимательнее:

context from-out-test {
    78121111111 => {
        Dial (SIP/601,10,tm(moh1));
    };
    h => {
        if ("${DIALSTATUS}" = "ANSWER") {
            Set(ODBC_UPDATEREQPATH()=${REQPATH},${SRC});
        };
        Hangup();
    };
};
Turbid ★★★★★
()
Ответ на: комментарий от Turbid

Огромное спасибо) Вроде как помогло, буду дальше испытывать.

madcry
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.