源自 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