Asterisk呼叫中心之数据库查询与播报(二)

本文详细介绍了在Asterisk呼叫中心中如何实现数据库查询和语音播报功能,包括接受用户按键、播放语音、数据库交互、动态加载SO文件以及拨号流程的理解。涉及的关键函数包括ast_play_and_wait、ast_readstring、ast_say_number等,并讨论了在实现过程中遇到的问题及解决方案。
摘要由CSDN通过智能技术生成

/*time:2014.7

   author:Mr.liu*/

本功能的实现主要包括如下几个方面值得思考:

  1、asterisk如何接受用户的单个选择性按键? 如何接受长字符串查询按键?

   2、asterisk如何播报语音?语音文件?

   3、如何与数据库打交道?

   4、asterisk如何在用户拨打电话时调用so文件及如何产生自己的so文件来供asterisk拨号调用?

   5、理解一个完整拨号、调用、加载卸载的流程?



为完成相应的功能开发。需涉及如下函数模块:

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时表示输入结束

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值