-

   rss_rss_hh_new

 - e-mail

 

 -

 LiveInternet.ru:
: 17.03.2011
:
:
: 51

:


[ ] Asterisk func_odbc ael

, 20 2017 . 15:46 +
Asterisk realtime func_odbc .

asterisk .

Func_odbc ?


Function_ODBC ael?

  • extensions.ael

, , . :

Func_odbc.conf


asterisk + mysql.
sipuser ( sipusers) cid, , .

: .
odbc.ini res_odbc.conf, .

1:

func_odbc.conf

[cid]
dsn=asterisk
readsql=SELECT cid FROM sipusers WHERE username = ${ARG1} 



dsn=asterisk DSN Asterisk , /etc/odbc.ini.

readsql=SELECT cid FROM sipusers WHERE username = ${ARG1} sql, .

, ael:

_89. => {
                Set(cid=${ODBC_cid(${CALLERID(num)})});
                SET(CALLERID(num)=${cid});
                SET(CALLERID(name)=${cid});
                ......
}

Set(cid=${ODBC_cid(${CALLERID(num)})}); -   SELECT cid FROM sipusers WHERE username = ${CALLERID(num)})} ,   .
SET(CALLERID(num)=${cid}) -  CALLERID(num) 
SET(CALLERID(name)=${cid}) -  CALLERID(name)

.

2:

func_odbc.conf

[forward]
dsn=asterisk
readsql=SELECT numforward, `type` FROM call_forwarding  WHERE number = ${ARG1} 

, .

, ael:

macro redirect(number, from){
    Set(ARRAY(forward,type)=${ODBC_forward(${number})});
    }
    if (${EXISTS(${forward})}) {
        switch(${type}) {
            case all:
                ....
            case noanswer:
                ....
            case noanswer-worktime:
                ....
                break;
            default:
                break;
        }
        hangup;
    }
    return;
};
    

,

Set(ARRAY(forward,type)=${ODBC_forward(${number})}); , , .
if (${EXISTS(${forward})}) ,

switch(${type}) , .

, .

P.S.: realtime. , , cid reload.

P.P.S.: readsql, writesql, .
Original source: habrahabr.ru (comments, light).

https://habrahabr.ru/post/333790/

:  

: [1] []
 

:
: 

: ( )

:

  URL