我们来看Diagram.7
1> 在A阶段当启动Redirection Server(RS)的时候 , RS向Provisioning Server(PS)发送SubScribe消息 , 取得合法的用户列表;
2> 在B阶段 , UA端向Marshal Server发送Register消息 , 以确认自己是否在合法用户列表内;
3> 在C阶段 , RS将通过Subscribe/Notify命令对把该用户的呼叫特性列表(呼叫等待 , 呼叫转接 , 语音邮件 , 呼叫前转 , 禁止呼叫等信息)得到该用户的呼叫特性;
我们在Redirection Server这一章内将具体介绍Subscribe/Notify命令对 。
2.6.4 监测线程:
一个调用的RUN方法loadGenThread->run是一个监测线程 , 检查各种回应和请求消息 , 并记录在LOG文件中 。
2.6.5 自动呼叫
在loadGenThread->run后面的程序实现了一个自动在预定时间内发送INVITE消息的过程 , 大家有爱好可以参看OpAutoCall类 , 当在UserAgent::Run()中通过检测Cfg文件 , 通过setLoadGenSignalType(LoadGenStartCall)设定了一个公共变量以后 , 我们可以发现系统将自动进入OpAutoCall操作 , 并且启动INVITE开始呼叫 。
好了 , 通过上面的介绍后我们需要知道如何让系统进入Idle状态 , 在这个状态中系统处于一种"等待"的状态 , 接收本地的命令输入 , 和远端的消息;这个状态是所有后续状态的一个初始阶段 , 在上述程序中我们可以在processSipEvent过程中找到handleCallWaiting子程序 , 就在该过程中让系统进入Idle状态;见下面的程序:
… …
if ( UaConfiguration::instance()->getLoadGenOn() )
{
callInfo->setState
( stateMachine->findState( "StateAutoIdle" ) );
}
else // LoadGen is off
{
if( handleCallWaiting( callInfo ) )
{
return true;
}
… …
(未完待续)
推荐阅读
- br软件是干嘛的
- 小孩叛逆期一般在什么年龄段
- 逆向工程技术的发展趋势
- 档案室用什么类型的灭火器
- adobe reader xi如何使用签名文档?
- 湖藕与莲藕的区别 湖藕与莲藕的区别在哪
- 现存老虎的种类有多少种小说中武松在景阳冈上打死的老虎是什么品种的有何依据
- 长虹 M618购机几天来的一些心得
- word中打出下划线具体操作方法
- 蛤蜊油是什么做的,蛤蜊油是什么 蛤蜊油成分 蛤蜊油作用