asterisk中部分常见函数说明

来源:互联网 发布:oracle导出excel数据 编辑:程序博客网 时间:2024/05/17 23:30

源自  http://blog.csdn.net/ln5336993/article/details/6435226

int ast_strlen_zero(const char *s); 
    /param s    判断的字符串 
    s为空返回1,非空返回0


int ast_play_and_wait(struct ast_channel *chan, const char *fn); 
    /param chan     播放语音的信道 
    /param fn         播放的文件名,文件放在/var/lib/asterisk/sounds/目录下,如:此目录下的"您好.gsm",那么fn = "您好", 

                          如果是/var/lib/asterisk/sounds/mymusic/下的"您好.gsm"呢?只要令fn = "/mymusic/您好"

    return     返回按的键,只能有一个键  播放fn,等待并返回按的键


int ast_streamfile(struct ast_channel *c, const char *filename, const char *preflang); 
    /param c                播放文件的信道 
    /param filename    播放的文件名(类似于ast_play_and_wait的fn) 
    /param preflang    播放文件的语种 
    用preflang语种播放filename,成功返回0,失败返回-1


int ast_readstring(struct ast_channel *c, char *s, int len, int timeout, int ftimeout, char *enders); 
    /param c                读取数据的信道 
    /param s                读取的字符串存入S,需要有空间 
    /param len            最多能读取字符的长度 
    /param timeout    字符输入之间间隔容许的最长时间 
    /param ftimeout    等待第一个字符的最长时间 
    /param enders        输入字符串结束标志 
    从c中读取输入的数据,并保存在s中,最大保存数据为len,两个数据之间最大时间间隔为timeout,等待第一个字符的最长时间为ftimeout, 当输入enders时表示输入结束 
    正常读取数据返回0,超过timeout返回1,失败返回-1


int ast_say_number(struct ast_channel *chan, int num, const char *ints, const char *lang, const char *options); 
    /param    chan    播放一个数据的信道 
    /param    num        播放的数字 
    /param    ints    播放的过程中可以被中断的字符 
    /param    lang    播放数字的语种 
    /param    options    "f"为女性的,"m"为男性,"c"为亲切的,"n"为中立的,"p"为复性的 
    播放一个数字num,成功或中断返回0,失败返回返回-1


struct ast_variable *ast_load_realtime(const char *family, ...); 
    /param    family    为连接数据库的句柄,在/etc/asterisk/extconfig.conf内设置 
    /param    ...            变参,传入方式为"字段","与此字段相应的数值","字段","与此字段相应的数值", ...最后是NULL结尾 
    返回在family连接的表中符合...的内容,若有相符的,返回一个struct ast_variable的结构体,没有则返回NULL 
    我们可以简化struct ast_variable {        
                                            char *name;        //字段名 
                                            char *value;    //数值 
                                            struct ast_variable *next; 
                        };(实际上在代码中并不是这样子的,为了方便看懂才写成这样)


struct ast_app *pbx_findapp(const char *app); 
    /param    app    app的名字 
    查找在/asterisk/apps/内注册的app函数,查找到对应的app返回一个struct ast_app结构体,失败返回NULL


int pbx_exec(struct ast_channel *c, struct ast_app *app, void *data); 
    /param    c            执行app应用的信道 
    /param    app        执行的app 
    /param    data    执行此app时传入app的参数 
    执行app并传入参数data,执行成功返回0,失败返回-1,这个函数一般都是先用 
    struct ast_app *pbx_findapp(const char *app);找到,再执行


void pbx_builtin_setvar_helper(struct ast_channel *chan, const char *name, const char *value); 
    /param    chan    设置的变量所在的信道 
    /param    name    设置的变量名 
    /param    value    变量的值 
    在chan中设置变量名为name,值为value的变量


const char *pbx_builtin_getvar_helper(struct ast_channel *chan, const char *name); 
    /param    chan    取得变量的信道 
    /param    name    变量的名字 
    得到在chan信道中变量名为name的变量值,返回name的值,这个函数都是通过 
    void pbx_builtin_setvar_helper(struct ast_channel *chan, const char *name, const char *value); 
    先设置name的值,再用此函数得到这个值


int ast_ivr_menu_run(struct ast_channel *c, struct ast_ivr_menu *menu, void *cbdata); 
    /param    c            执行的渠道        
    /param    menu    执行的一个struct ast_ivr_menu变量 
    /param    cbdata    传入menu内的参数 
    执行menu,成功返回0,挂断返回-1,menu有错返回-2


0 0
原创粉丝点击