您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 基于IP网络公务电话系统设计与实现答辩
复旦大学基于Socket的IP公务电话软件设计与实现指导老师:答辩人:内容安排四、结论及未来工作三、主要研究工作二、基础知识准备一、课题背景意义一、课题背景意义传统的公务电话一、课题背景意义基于互联网的PC电话一、课题背景意义传统的公务电话基于互联网的PC电话基于IP网络的公务电话二、知识准备(2)计算机网络知识(3)链表知识(1)VC++基本编程知识:C++、MFC、对话框、Socket编程、多线程三、主要研究工作1、系统框架设计SOCKET套接字(SOCK_DGRAM)SOCKET套接字(SOCK_DGRAM)发送信令采集语音播放语音采集拨号操作数据传输层业务逻辑层界面操作层信令处理信令收发SOCKET套接字(SOCK_STREAM)TCP/IP协议接收信令响应配置处理按键处理语音数据处理语音数据发送SOCKET套接字(SOCK_STREAM)发送接收状态显示铃音播放交互处理交互处理TCP面向连接传输控制协议UDP用户数据报协议2、系统操作功能图基于Socket的IP公务电话软件电话按键功能配置功能通话查询功能添加功能单呼功能组呼功能刷新功能修改功能删除功能三、主要研究工作3、套接字类型的选择面向连接的套接字三、主要研究工作socket()bind()WSAStartup()交换数据交换数据listen()accept()等待客户连接请求的到来socket()WSAStartup()connect()建立TCP连接recv()send()closesocket()WSACleanup()send()recv()closesocket()WSACleanup()3、套接字类型的选择面向连接的套接字(SOCK_STREAM)特点:1.建立了虚连接2.可靠3.不重复传输数据4.适合数据量不大的数据传输信令传输方式三、主要研究工作3、套接字类型的选择面向无连接的套接字三、主要研究工作socket()bind()recvfrom()sendto()closesocket()WSACleanup()WSAStartup()socket()bind()sendto()recvfrom()closesocket()WSACleanup()WSAStartup()数据交互数据交互3、套接字类型的选择面向无连接的套接字(SOCK_DGRAM)特点:1.没有连接2.资源消耗小3.处理速度快4.适合传输大批量数据,适合音频传输组呼和单呼传输方式三、主要研究工作三、主要研究工作4、类设计实现界面操作层的类:CIPPHONEDlg、CSysSettingDlg、CHistoryDlg、CNumberlist实现业务逻辑层的类:CManageSound、CCaptureSound、CPlaySound、实现数据传输层功能的类:CSignalSerSocket、CSignalCliSocket、CSignalAcpSocket、CSoundSocket三、主要研究工作4、类设计+JoinMulticast():void+JoinBroadCast():void+SendTo():int+RecvFrom():int-m_Socket-m_uLocalPort-m_uRemotePortCSoundSocket+Create():int+RecordStart():void+RecordStop():void+JoinMultiCast():void-m_pDSCapture-m_pDSCBuffer-...CCaptureSound+Create():int+PlayStart():void+PlayStop():void+JoinMulticast():void-m_Buffer[CONNECT_COUNT]-lpDirectSound-...CPlaySound+Create():int+JoinMultiCast():void+Start():void+Stop():void+m_Capture:CCaptureSound+m_PlayC:PlaySoundCManageSound+m_messageinfo:CStringCHistoryDlg+CaptureDialingNum():void+DialingThread()+PlayRingThread()+InitSystemThread()+SingleTalkingSerThread()+SingleTalkingCliThread()+GroupTalkingSerThread()+GroupTalkingCliThread()+m_signaldeal:CSignalDeal+m_numberlist:CNumberList+...CIPPHONEDlg+InitList():void+ClearList():void+ListSize():int+ListEmpty():bool+InsertList():bool+DeleteList():bool+UpdateList():bool+FindList():bool+FindListGroup():bool+HL:PrNumberlistCNumberList+OnReceive():void-m_signaldeal:CSignalDealCSignalAcpSocket+OnReceive():void+OnConnect():void+m_signaldeal:CSignalDeal+connectflag:intCSignalCliSocket+InitSignalacceptDeal():bool+InitSignalclientDeal():bool+PacketClassify():bool+RequestDealing():bool+ReplyDealing():bool+NotifyDealing():bool+UpdateDealing():bool-m_SignalPacket:SignalPacket-m_signalacpsocket:CSignalAcpSocket*-m_signalclisocket:CSignalCliSocket*CSignalDeal+SetDialog():void+DeleteAcceptSocket():bool-m_hwnd:CIPPHONEDlg*CSignalSerSocket+ButtonRecover():void#OnBUTTONAdd():void#OnBUTTONChange():void#OnBUTTONDelete():void#OnBUTTONEmpty():void+m_Numlist:CNumberList+m_localip:charCSysSettingDlgCDialog+关联*+关联*+关联**三、主要研究工作5、信令机制设计标志位Flag掩码Mask[16]IP地址Ip[16]子标志位ChilFlag公务编码Name[20]话机状态PhoneState组号Groupnum[3]公务号码Phonenum[4]缓存顺序bufferorder合作确定信令的类型组呼中确定数据缓存顺序话机基本信息话机状态功能待扩展不同子网(功能待扩展)IP地址在CSignalDeal类中定义了结构体SignalPacket三、主要研究工作5、信令机制设计标志位标志位类型数值设计中规定的代表含义REQUESTINGFlag0x01通话请求消息REQUEST_SINGLEChilFlag0x02单呼请求消息REQUEST_GROUPChilFlag0x03组呼请求消息REQUEST_BOARDChilFlag0x04广播请求消息REPLYINGFlag0x05通话回复消息REPLY_WAITTINGChilFlag0x06回复等待消息REPLY_REFUSEREQUESTChilFlag0x07回复拒绝消息NOTIFYINGFlag0x08通话告知消息NOTIFY_ACCEPTChilFlag0x09通知接收消息NOTIFY_REFUSEChilFlag0x0A通知拒绝消息NOTIFY_ENDINGChilFlag0x0B通知结束消息UPDATINGFlag0x0C通知更新消息(暂未使用)三、主要研究工作6、话机状态设计状态标志标志值设计中规定的代表含义IDLE0x01空闲状态(挂机状态)IDLE_PHONERING0x02空闲振铃状态IDLE_BEFOREEND0x03空闲状态(特定主动挂机情形下)HOLDING0x04摘机状态HOLDING_DIALING0x05摘机拨号状态HOLDING_WAITING0x06摘机拨号后等待状态HOLDING_DELAYING0x07摘机拨号延迟状态HOLDING_BACKRING0x08摘机拨号收到回铃音状态HOLDING_BUSY0x09摘机拨号收到忙音状态HOLDING_TALKING0x0A通话状态HOLDING_TALKING_ENDING0x0E通话结束状态(特定被动话机情形下)三、主要研究工作6、话机状态设计空闲状态IDLE空闲振铃状态IDLE_PHONERING摘机状态HOLDING摘机拨号等待状态HOLDING_WAITING空闲状态(挂机)IDLE_BEFOREEND摘机拨号超时状态HOLDING_DELAYING摘机拨号状态HOLDING_DIALING摘机回铃音状态HOLDING_BACKRING摘机忙音状态HOLDING_BUSY摘机通话状态HOLDING_TALKING通话结束HOLDING_TALKING_ENDING通话请求摘机摘机挂机拨号超时挂机对端摘机挂机成功失败对端挂机对端挂机挂机挂机三、主要研究工作7、界面设计三、主要研究工作8、系统程序线程设计系统配置线程话机铃音线程界面启动信令处理线程套接字启动系统启动用户操作话机关闭循环处理拨号线程用户拨号话机开启循环处理数据交互数据交互数据交互通话线程数据交互数据交互语音采集播放线程结束数据交互数据交互三、主要研究工作9、单呼通话过程设计拨号摘机匹配配置文件公务号码对应IP地址连接提示错误是否空闲振铃接通开启语音开启语音挂机播放忙音挂机主叫端被叫端存在不存在摘机播放忙音拒绝等待通话中空闲结束消息单呼消息拒绝消息语音数据接通消息通话通话三、主要研究工作10、组呼通话过程设计拨号(000)摘机从配置文件中查找与本机组号相同的号码连接是否空闲振铃等待拒绝摘机开启语音开启语音通话通话挂机忙音挂机组呼消息通话中或超时空闲语音数据结束消息主叫端被叫端四、结论及未来工作1学习了基于VC++的网络应用程序开发,分析了基于Socket的通信系统2设计实现了基于Socket的IP网络数据和语音传输3改进和展望有待扩展群呼功能,即所有联网的用户可以进行相互通信复旦大学谢谢!
本文标题:基于IP网络公务电话系统设计与实现答辩
链接地址:https://www.777doc.com/doc-2534139 .html