中文翻译:pjsip文档(四)之ICE Session的使用方法

  1:pjsip教程(一)之PJNATH简介

  2:

  3:pjsip教程(三)之ICE stream transport的使用

  4:pjsip文档(四)之ICE Session的使用方法

本文原文连接:

Detailed Description

这个模块描述的pj_ice_sess对象是PJNATH库的组成部分同时它是与数据包的传输无关的对象(a transport independent)。

ICE Session

ICE Session 是PJNATH库中关于ICE的最底层的抽象,它使用一个单一的媒体流来执行两端的连接检测(双方通过互发数据包进行协商,从而确定一条从A到B可以互通的路径)。ICE Session 使用pj_ice_sess结构体来表示.

此处描绘的ICE Session它不做数据的传输(is independent from any transports),那么这也表明网络的IO得是由应用程序本身或者由它更高的抽象层来执行。使用这个框架,应用程序就可以使用ICE Session来处理所有接收到的数据包,并且该框架也为ICE Session提供了向外发送数据的回调接口。

关于ICE更高级的抽象,请查看ICE stream transport进行了解.

Using The ICE Session

下面是ICE Session的详细使用步骤,当然,开发者也可使用ICE stream transport的API,它对ICE进行了更高级的封装,并且提供了ICE socket的集成。

ICE Session的使用步骤类似于报告/答复模式(offerer and answerer):

使用pj_ice_sess_create()创建ICE Session,其中用户需要指定一下几个参数:

使用pj_ice_sess_send_data()方法来发送数据。如果发送数据的时候是在ICE协商还没完成时,,那么ICE session 将直接丢弃该数据并且给调用者返回错误信息;如果是在ICE协商完成后,那么ICE session 将会调用pj_ice_sess_cb的on_tx_pkt来发送数据.

由于ICE Session本身没有传输机制,所以应用程序必须把从底层接收到的所有数据包都通过pj_ice_sess_on_rx_pkt()方法传递给ICE Session,ICE Session判断该包是否为STUN包,如果是,则处理;如果不是,则使用on_rx_data回调把数据包向上传递给应用上层.

  转载请注明:

  名称:中文翻译:pjsip文档(四)之ICE Session的使用方法

  作者:大雪先生

  链接:

时光的消化是这样的缓慢。虽然这也仅仅是无处可说的委屈。而不是痛苦。

中文翻译:pjsip文档(四)之ICE Session的使用方法

相关文章:

你感兴趣的文章:

标签云: