• MSDC 4.3 接口规范(26)


    7.4 组呼业务管理

    以下部分定义了一组呼叫以管理组呼服务的启动/停止顺序。

    7.4.1 服务状态

    图 7-9 显示了对应用程序可见的组呼服务状态。 根据 MSDC 或用户/应用程序采取的操作,服务可能会从一种状态移动到另一种状态。
    在这里插入图片描述

    • STOPPED – 服务的默认状态。 该服务可供用户使用,但尚未启动。
       - 如果用户停止已经启动或停止的服务,它会进入停止状态。 发生这种情况时,应用程序会收到groupCallServiceStopped() 的通知(请参阅第 4.4.3 节)。
    • STARTED – 当用户/应用程序启动可用服务(在网络上可用)并且该服务的 TMGI 激活成功时,该服务移动到 STARTED。 当组呼服务状态变为 STARTED 时,groupCallServiceStarted() 会通知应用程序(请参阅第 4.4.2 节)。
    • STALLED - 如果处于 STARTED 状态的服务有一个临时问题导致该服务对设备不可用,则 MSDC 将该服务移动到 STALLED。 当组呼服务状态变为 STALLED 时,应用程序会收到 groupCallServiceStalled() 的通知(请参阅第 4.4.5.1 节)。
       - 当应用启动一个服务并且该服务对应的TMGI不能被激活时,MSDC也会返回groupCallServiceStalled()给应用。
       - 预计此状态是可恢复的,并且 MSDC 将在它变得可用时立即移动到 STARTED 状态。 或者,应用程序可以选择使用 stopGroupCallService() 将服务移动到 STOPPED(参见第 4.4.3 节)。

    注意:图 7-9 中没有显示两个临时中间状态:

    • START_REQUESTED 当应用程序请求启动服务但尚未收到 groupCallServiceStarted() 通知时(请参阅第 7.4.2 节)。
    • STOP_REQUESTED 当应用程序请求停止服务并且尚未收到 groupCallServiceStopped() 通知时(请参阅第 7.4.3 节)。

    7.4.2 启动组呼业务

    7.4.2.1 接口函数
    void startGroupCallService(long tmgi, List saiList, List freqList, String multicastIP, int multicastPort);
    void groupCallServiceStarted(long tmgi, String server, int port);
    void startGroupCallService (long TMGI, List  SAIList, List  FrequencyList); -- Deprecated from version 4.3.03.01.0
    void groupCallServiceStarted (long TMGI); -- Deprecated from version 4.3.03.01.0
    void groupCallServiceError (long TMGI, int errorCode,String message);
    
    • 1
    • 2
    • 3
    • 4
    • 5
    7.4.2.2 先决条件

    组呼模块连接初始化

    7.4.2.3 说明

    要启动组呼服务,应用程序应使用 startGroupCallService()。 通过这个调用,应用程序给出了要启动的服务的 TMGI、SAI 列表和频率列表。

    SIB15 是一个系统信息块,提供当前小区及其邻居的 SAI 列表。 在广播 SIB15 的小区中,UE 使用 SAI 列表来确定广播 TMGI 的频率,而忽略频率列表。 如果当前小区没有广播SIB15,调制解调器使用频率列表来激活TMGI。 SAI列表和频率列表可能为空,表示UE应该尝试激活当前小区的TMGI。

    如果成功启动组呼服务,MSDC API 会以 groupCallServiceStarted() 响应,以指示服务已进入 STARTED 状态。

    7.4.2.4 调用流程
    7.4.2.4.1 启动组呼业务

    如果app要启动Group Call服务,必须通过startGroupCallService()发送请求。该函数需要需要启动Group Call服务的TMGI、SAI列表和Frequency列表。 应用程序必须从组呼客户端获取此信息,该客户端从网络中的组呼服务器获取信息。

    服务成功启动后,MSDC API 将 groupCallServiceStarted() 发送到应用程序并将服务移动到 STARTED 状态。
    在这里插入图片描述

    7.4.2.4.2 无法启动服务

    如果 MSDC 因任何原因无法启动组呼服务,MSDC API 将使用 groupCallServiceError() 和错误代码 ERROR_GC_UNABLE_TO_START_SERVICE 响应应用程序。
    在这里插入图片描述

    7.4.3 停止组呼服务

    7.4.3.1 接口函数
    void stopGroupCallService (long TMGI);
    void groupCallServiceStopped (long TMGI);
    void groupCallServiceError (long TMGI, int errorCode, String message);
    
    • 1
    • 2
    • 3
    7.4.3.2 先决条件

    组呼模块连接初始化

    7.4.3.3 说明

    要停止处于 STARTED 或 STALLED 状态的组呼服务,应用程序应使用 stopGroupCallService()。 通过调用该函数,应用程序指示要停止的服务的TMGI。

    如果成功停止组呼服务,则 MSDC API 会使用 groupCallServiceStopped() 进行响应,以指示服务已移至 STOPPED 状态。

    7.4.3.4 调用流程
    7.4.3.4.1 停止组呼业务成功

    要停止处于 STARTED 或 STALLED 状态的服务,应用程序使用 stopGroupCallService()。 如果停止服务成功,MSDC API 将 groupCallServiceStopped() 发送到应用程序。
    在这里插入图片描述

    7.4.3.4.2 无法停止组呼服务

    如果 MSDC 由于某种原因无法停止组呼服务,MSDC API 会使用 groupCallServiceError() 和错误代码 ERROR_GC_UNABLE_TO_STOP_SERVICE 响应应用程序。
    在这里插入图片描述

  • 相关阅读:
    如何复用ijkplayer库实现ffmpeg的功能
    Python爬虫
    为什么要权值初始化
    01.shiro入门
    echarts-可视化地图防重叠文本框
    游戏盾SDK是如何实现智能加速的?
    安装samba服务器
    FreeRTOS多任务管理
    yolov5的qat量化
    一阶段Linux整理
  • 原文地址:https://blog.csdn.net/weixin_38498942/article/details/127665847