freeswitch
文章平均质量分 77
罗自荣
这个作者很懒,什么都没留下…
展开
-
freeswitch 在redhat 7.0/centos 7.0上的编译安装
参考官方文档:https://freeswitch.org/confluence/display/FREESWITCH/CentOS+7https://freeswitch.org/confluence/display/FREESWITCH/CentOS+7+and+RHEL+71) Make sure yum update is run and CentOS is u原创 2017-11-14 17:27:43 · 2022 阅读 · 1 评论 -
freeswitch SIP信令的接收
freeswitch SIP信令的处理在mod_sofia中 首先在模块的加载(mod_sofia_load)里面会创建一个处理SIP消息的线程: /* start one message thread */ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "Starting initial message th原创 2018-01-29 17:28:21 · 4016 阅读 · 1 评论 -
freeswitch mrcp 源码分析--数据包的发送
在MRCP 开始语音识别后会调用recog_channel_start()函数static switch_status_t recog_channel_start(speech_channel_t *schannel){ switch_status_t status = SWITCH_STATUS_SUCCESS; switch_hash_index_t *egk;原创 2018-01-08 19:26:22 · 3416 阅读 · 0 评论 -
freeswitch.Session的实现过程
一.创建Session在lua中通过调用 freeswitch.Session()可以创建一个Session对象。按源码里的注释,他包括四个原型: LUA::Session::Session() LUA::Session::Session(char ,CoreSession ) LUA::Session::Session(char *) LUA::Session::Session(sw原创 2017-12-31 02:47:58 · 4101 阅读 · 0 评论 -
freeswitch lua/luarun的执行过程
在mod_lua.cpp文件中定义了两个api SWITCH_STANDARD_APP(lua_function) SWITCH_STANDARD_API(luarun_api_function) 分别对应lua和luarun命令,所有以宏SWITCH_STANDARD_API定义的都是freeswitch暴露的api接口。 我们这里以luarun为例分析SWITCH_STANDA原创 2018-01-02 15:15:29 · 3078 阅读 · 0 评论 -
freeswitch Session dtmf callback的触发过程
在创建一个Session后会调用switch_core_session_thread_launch()创建一个对应的线程原创 2018-01-02 22:52:32 · 2161 阅读 · 0 评论 -
freeswitch mrcp 源码分析--event事件产生
event事件的构建主要在speech_thread()函数里面。static void *SWITCH_THREAD_FUNC speech_thread(switch_thread_t *thread, void *obj){ struct speech_thread_handle *sth = (struct speech_thread_handle *) obj; swit原创 2017-12-23 19:52:03 · 3353 阅读 · 0 评论 -
freeswitch mrcp 源码分析--数据接收(上)
apt_poller_tas.apt_poller_task_run–> mrcp_client_connection.mrcp_client_poller_signal_process–> sendrecv.apr_socket_recv –> mrcp_stream.mrcp_parser_run –> mrcp_client_connection.mrcp_client_message_原创 2017-12-22 17:20:36 · 2481 阅读 · 0 评论 -
freeswitch mrcp 源码分析--数据接收(下)
在前两篇我们介绍了mrcp接收后的处理,最后会调用apr_queue_push扔到消息队列里面。 对应的,在apt_consumer_task.apt_consumer_task_run()中会循环调用pr_queue.apr_queue_pop()从队列里面取出数据:apt_consumer_task.apt_consumer_task_run –> apr_queue.apr_queue_p原创 2017-12-22 21:03:23 · 3378 阅读 · 0 评论 -
freeswitch mrcp 源码分析--数据解析
/** Parse message by raising corresponding event handlers */APT_DECLARE(apt_message_status_e) apt_message_parser_run(apt_message_parser_t *parser, apt_text_stream_t *stream, void **message){ const原创 2017-12-20 20:12:06 · 1874 阅读 · 2 评论 -
coredump分析
static void *audio_bridge_thread(switch_thread_t *thread, void *obj){ switch_ivr_bridge_data_t *data = obj; int stream_id = 0, pre_b = 0, ans_a = 0, ans_b = 0, originator = 0; switch_input_callbac原创 2017-12-21 14:16:38 · 6929 阅读 · 1 评论 -
freeswitch 使用的问题
1.呼叫另一台主机的命令originate sofia/external/1000@11.239.168.3 &echo报错:[ERR] sofia_reg.c:2616 Cannot locate any authentication credentials to complete an authentication request for realm '"11.239.161.25原创 2017-11-24 18:10:41 · 4299 阅读 · 2 评论 -
MRCP UA的创建及SIP信令处理
在mrcp_sofia_task_initialize中调用nua_create一个UA(User agent)这个跟freeswitch SIP信令的接收,是一样的。在nua_create的时候会设置回调函数:mrcp_sofia_event_callback()。接下来的处理都是一样的,只是有事件的时候的回调不一样。现在调用的是mrcp_sofia_event_callback()。/...原创 2018-04-11 11:19:12 · 2234 阅读 · 1 评论