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