1.【unimrcpclient源码分析】mrcp components
2.几种SIP客户端
3.sipåè®®å¦ä½ç¨Cè¯è¨å®ç°
4.怎样使用linphoneapi编程?
【unimrcpclient源码分析】mrcp components
配置样例包含六个部分。议源
函数unimrcp_client_components_load主要负责这六个组件的议源加载,下面详细解析各个组件的议源加载过程。
加载resource组件时,议源其结构体mrcp_resource_t定义在mrcp_resource.h,议源字符串使用apt_str_table_item_t(定义在mrcp_resource_loader.c),议源短信收发源码mrcp_resource_loader_t和mrcp_resource_factory_t分别位于mrcp_resource_loader.c和mrcp_resource_factory.c。议源构造mrcp_resource_loader内部是议源mrcp_resource_factory_t *factory,factory通过mrcp_resource_factory_create构建,议源参数为MRCP_RESOURCE_TYPE_COUNT的议源第5个值,整型值为4。议源
加载sip-uac组件时,议源mrcp_sofia_client_config_t结构体(mrcp_sofiasip_client_agent.c)应用于sofia sip协议栈。议源默认端口和名称设定如下:config->local_port = DEFAULT_SIP_PORT; 默认端口为,议源config->user_agent_name = DEFAULT_SOFIASIP_UA_NAME; 默认agent name为UniMRCP SofiaSIP,议源python结婚源码config->origin = DEFAULT_SDP_ORIGIN; 默认sdp origin为UniMRCPClient。IP地址配置通过unimrcp_client_ip_address_get(unimrcp_client.c)实现,可配置为“auto”或“iface”。然后使用mrcp_sofiasip_client_agent_create(mrcp_sofiasip_client_agent.c)创建sofiasip_client。
加载rtsp-uac组件时,指代MRCPv1版本的uac组件。rtsp_client_config_t结构体(mrcp_unirtsp_client_agent.h)用于配置。组件加载通过unimrcp_client_rtsp_uac_load函数完成。
加载media-engine组件时,配置项仅包含realtime_rate。unimrcp_client_media_engine_load函数负责加载此组件。mpf_engine_t结构体(mpf_engine.c)用于创建mpf_engine,使用mpf_engine_create函数。
加载rtp-factory组件时,溯源码燕菜mpf_rtp_config_t结构体(mpf_rtp_descriptor.h)包含可配置项。unimrcp_client_rtp_factory_load函数用于加载此组件,并通过mpf_rtp_termination_factory_create(mpf_rtp_termination_factory.c)创建相应的工厂。
几种SIP客户端
做IMS的,出于测试或是体验的目的,总免不了要找个客户端接到网络里面试一试,介绍几款使用SIP协议的软电话,供参考。 IMSDroidGoogle的开源项目,在网上可以免费下载,只支持Android系统(看名字也能猜得到)。这个东西对于做IMS的技术人员来说真是一个好东西,首先它的协议栈遵循3GPP标准,所以不是伊糖源码一个单纯的SIP客户端而是IMS客户端;其次你能想到的参数在用户界面里基本都能够进行配置,非常适合进行测试;最后,由于这是个开源项目,因此可以拿到源码,有能力的话可以根据自己的需求进行二次开发。美中不足的是目前的版本稳定性稍差,不过还是那句话,用于测试的话还是可以接受的。 Bria(名字似乎有点儿邪恶。。。。。)Counterpath 出品的商业客户端,功能强大,add源码解析稳定,对Android、IOS、Windows都有相应的版本来支持,专业的就是专业。不过也有问题,首先是这个要付费的,具体价格忘记了,是一般人都能接受的价格,不过很讨厌的是付费的基本版本只支持G.音频编解码,如果要支持G.等压缩编解码还需要再次付费;另一个问题是Bria不是完全遵循3GPP标准的,比如在初始注册消息中不会携带Authorization头域,这也就导致了在一些对协议流程要求严格的网络中Bria不能使用。 X-LiteBria的免费版本,功能上做了删减。 SIP Phone言简意赅,从名字到软件本身都是极度精简,也是免费软件。对于这个东西没啥可说的,功能确实比较简单,可配置的东西也很少,最初测试账号时用过,现在基本不动了。 Nokia手机对,你没有看错,就是诺基亚手机! 不得不佩服一下N厂,很早就在手机系统中内置了SIP协议栈,简单地配置一下账号和网络入口点就可以了,进行完相应的配置后,在拨号时会提示是否使用IP通话,选择的话就可以通过IMS进行呼叫,亲身测试过的机型有E/E/。 权限:公开 来自:labs
声明: 本文仅代表作者个人观点。其原创性及文中表达的意见、判断、数据、观点和陈述文字等内容均与中国移动研究院无关。
sipåè®®å¦ä½ç¨Cè¯è¨å®ç°
1ãå¼æºçsipæå¡å¨ç«¯ï¼æ¯è¾å¥½ç¨çæ¯Asteriskï¼æ åCç¨åºå®ç°ï¼ä»£ç æ¸ æ°ã
2ãsipçclientç¸å¯¹æ¯è¾å¤ï¼ä¸»è¦æexosip,pjsipåopalãexosipç®åæç¨ï¼å¨PCä¸ç¨æ¯è¾æ¹ä¾¿ãä½æ¯æ¶åçç¸å ³èµæºå¤ªå¤ï¼ç¨äºosip,srtp,ms2çä¼å¤çå¼æºåºï¼ms2ä¸é¢è¿ç¨å°äºffmpegï¼å«çä¸è¯´ï¼å ç¼è¯å°±æ¯å©æ¢¦ãopalåè½æ强ï¼è½ç¶ä¹ç¨å°äºffmpeg ï¼ä½æ¯èªå·±å°è£ çé常好ï¼éç¨æ件æ¹å¼ï¼è°ç¨çµæ´»ãopaléç¨classæ¹å¼æä¾å°è£ ï¼æ¥å£é常å好ãæè§å¯ä¸ä¸ç½çå°æ¹ï¼å°±æ¯ä½å±ä½¿ç¨äºptlibï¼è½ç¶å¤å¹³å°ä¸é½å¾å¥½ç¨ï¼ä½æ¾å¨åµå ¥å¼ä¸æè§ç¨åºå¤§äºä¸äºãpjsip精巧ï¼æ¹ä¾¿ç§»æ¤ï¼åµå ¥å¼ä¸åºè¯¥æ¯é¦éãä¸è¿è§é¢é¢æ¯ææ¹é¢æ©å±èµ·æ¥æ¯opal麻ç¦ã个人æè§ï¼å¯¹äºwindowså¼åè æ¥è¯´ï¼pjsipæ大ç好å¤å°±æ¯ä»£ç è°è¯æ¹ä¾¿ãæ´ä¸ªå·¥ç¨ä¸æ¬¡ç¼è¯éè¿ï¼å¦å¤ä¸¤ä¸ªåºè¿è¦æ¾å¾å¤ç¸å ³çèµæº
ã
3ãå ¶ä»çä¸äºåè®®æ ä¹è°è¯è¿ï¼æ¯å¦reSipphoneï¼å¥½è±¡æ¯è¿ä¸ªååï¼è¿æYateï¼ä¸è¿ä»å¿«éå¼åè§åº¦çï¼é½ä¸å¤ªåéãç°å¨æsipå¼åçï¼ä¸å¼å§å°±æ¯å æ¾å¥½åè®®æ ãlinphone,ekigaä»ä¹çï¼ä½åºå¤§ã对äºåå¼å§åçï¼æ好æ¯ä¸ä¸ªç²¾ç®çdemoãåæ¥æ¾å°pjsipä¸é¢çå 个ä¾åï¼æ ¢æ ¢å°äºè§£äºsipçå·¥ä½æµç¨ï¼å½ç¶å°ä¸äºæå å·¥å ·åtcpdumpã
ä¸è¿ï¼å ¶å®ï¼sip没ææ³è±¡ä¸çé£ä¹éº»ç¦ãç°å¨å头çï¼åå¼å§å项ç®ï¼ä½¿ç¨åè®®æ ç»å¯¹ä¸æ¯å¥½æ³æ³ãå¦ææ¢ä¸ªæ¹åï¼å çæSIPåºæ¬åè®®ï¼ç¶åèªå·±æ¹é ä¸ä¸ªï¼æå®å ¨åä¸ä¸ªï¼å¯è½æææ´å¥½ã
怎样使用linphoneapi编程?
Linphone是基于WEB的IP电话工具,可以运行于 Linux和Windows下。通过 Linphone可以在互联网上和其他人进行声音、视频通信。 Linphone是遵从SIP协议开发的,它需要和支持SIP协议的设备或者代理服务器进行相互操作。二、准备工作:
1、DVR联网:
两种方式:
T3DVR连接AI-BOX->T-BOX通过网络转发连接外网。
T3DVR直接接PC,利用PC的网络出外网(桥接)。
2、下载客户端
下载地址:]
[net_policy_0]
net使用ref参数传递
[misc]
唯一的机器生成的标识
[video]
是否显示、是否录像等标志位
[rtp]
rtp音频端口、视频端口等信息:
[sound]
铃声文件目录、音频频率等、
六、 Linphone中通信过程分析:
实验:两个电脑下载linphone进行通话,Wireshark进行抓包分析通信过程。
Linphone 地址为:
A: sip:linphone@...:
B: sip:linphone@...:
操作:
A给B打电话进行实验:
Wireshark置过滤信息:
(ip.src == ...)||(ip.src == ...)
过程:
SIP(Session Initiation Protocol,会话初始协议)是一个控制发起、修改和终结交互式多媒体(音视频、聊天、游戏等)会话的信令协议
1、主叫方发给被叫方的INVITE请求
2、B向A发送呼叫处理中的应答信号。
3、B向A发送 我正在震铃中,请稍等。
4、B向A发送 接通了。
5、A向B发送应答。
6、A和B互相通过RTP(Real-time Transport Protocol实时传输协议)发送音频或视频数据。
7、A要挂断了
8、关闭UDP服务
9、B知道A挂断了,相应ACK
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:/qq_/article/details/