Android 语音SDK函数说明

1、有联云提供了一个用于在互联网上实时语音通信的平台。它提供了软件开发工具包–ULS SDK,您与您的智能手机应用程序基于云的后端服务进行实时的语音通信,除此之外有联云SDK还支持公共交换网络(PSTN)形式的高质量语音终端通信

2、我们的语音通信形式

APP-->APP
APP-->PHONE
PHONE-->PHONE

3.音频通话支持的平台有哪些?

支持的平台:Android iOS Windows。

4.如何开始?

我们为集成音频SDK提供了开发指南,此外我们针对SDK开发一个用于功能演示的Demo(下载地址

VoIP能力接口

目的是提供发送VoIP和互联网语音的能力接口。

1. 添加呼叫状态回调

原型:- ULSCall.addCallStateListener(CallStateListener listener)

功能:呼叫状态回调

返回:无

备注:每一发起新呼叫前调用函数,同时呼叫结束后系统会自动去除

参数:

参数名 类型 约束 说明
listener CallStateListener 必选 监听接口

2. 发起呼叫(不含回拨)

原型:- ULSCall.dial(Context mContext,ULSCallType callType,String calledNumner);

功能:发起VoIP语音(免费、直拨、智能)呼叫

返回:无

备注:

  • 语音免费呼叫:SDK与SDK之间语音通话场景;
  • 语音直拨呼叫:SDK与传统X手机(手机)语音通话场景;
  • 语音智能呼叫:优先使用语音免费呼叫,呼叫失败自动转语音直拨呼叫场景;

参数:

参数名 类型 约束 说明
mContext Context 必选 程序上下文
callType ULSCallType 必选 拨打电话方式, 类型为: P2P:免费、 DIRECT:直拨、
AUTO:智能呼叫(入参为手机号码)
calledNumber String 必选 被叫手机号码或Client账号

3. 发起呼叫(透传参数)

原型:- ULSCall.dial(Context mContext,ULSCallType callType,String calledNumner,String userData);

功能:发起VOIP语音(免费、直拨、智能)呼叫

返回:无

备注:

  • 语音免费呼叫:SDK与SDK之间语音通话场景;
  • 语音直拨呼叫:SDK与传统固话(手机)语音通话场景;
  • 语音智能呼叫:自动判断是使用P2P还是直拨;

参数:

参数名 类型 约束 说明
mContext Context 必选 程序上下文
callType ULSCallType 必选 拨打电话方式:P2P:免费, DIRECT:直拨, AUTO:智能呼叫(被叫手机号码或Client账号)
calledNumber String 必选 被叫手机号码或Client账号
userData String 必选 自定义透传数据(用于需要借助ULink平台透传数据给AS服务器或者被叫方,最大长度128字节(42个字符)

4. 发起呼叫,支持P2P失败自动转直拨功能

原型:- ULSCall.dial(Context mContext,ULSCallType callType,String toClientId,String toPhone,String userData);

功能:发起VOIP语音(免费、直拨、智能)呼叫

返回:无

备注:

  • 语音免费呼叫:SDK与SDK之间语音通话场景;
  • 语音直拨呼叫:SDK与传统固话(手机)语音通话场景;
  • 语音智能呼叫:优先使用语音免费呼叫,呼叫失败自动转语音直拨呼叫场景;

参数:

参数名 类型 约束 说明
mContext Context 必选 程序上下文 ApplicationContext
callType ULSCallType 必选 拨打电话方式:P2P:免费, DIRECT:直拨, AUTO:智能呼叫
toClientId String 必选 Client账号(单clientId)
toPhone String 必选 被叫电话号码用于直拨
userData String 可为空 自定义透传数据(用于需要借助ULink平台透传数据给AS服务器或者被叫方,最大长度128字节(42个字符)

5. 发起回拨呼叫(被叫显号)

原型:- ULSCall.callBack(Context mContext,String caller,String callee);

功能:发起回拨呼叫,带显号功能

返回:无

备注:回拨呼叫:主被叫双方都是通过传统线路呼叫接通的场景,使用于网络条件比较差(2G)或者对语音质量要求比较高情况下使用(资费较高)。回拨显号:来电显示的号码,一般用于传统线路电话呼叫场景。

参数:

参数名 类型 约束 说明
mContext Context 必选 程序上下文
caller String 必选 主叫电话号码,子账号已托管后可给传入""
callee String 必选 被叫手机号码或Client账号

6. 发起回拨呼叫(指定显号与隐号)

原型:- ULSCall.callBack(Context mContext,String caller,String callee,String fromSerNum,String toSerMum);

功能:发起回拨呼叫,带显号功能

返回:无

备注:回拨呼叫:主被叫双方都是通过传统线路呼叫接通的场景,使用于网络条件比较差(2G)或者对语音质量要求比较高情况下使用(资费较高)。回拨显号:来电显示的号码,一般用于传统线路电话呼叫场景。

参数:

参数名 类型 约束 说明
mContext Context 必选 程序上下文
caller String 必选 主叫电话号码,如子帐号已托管可传入""
callee String 必选 被叫手机号码或Client账号
fromSerNum String 可选 呼叫主叫所要显示的号码(没有可以不传)
toSerMum String 可选 呼叫被叫所要显示的号码(没有可以不传)

7. 释放通话

原型:- ULSCall.hangUp(String callid);

功能:挂断通话或拒绝接听

返回:无

备注:主叫方:外呼过程中或通话中,调用这个接口结束一路呼叫;被叫方:来电过程中或通话中,调用这个接口结束一路通话;

参数:

参数名 类型 约束 说明
callId String 可选 当前通话id (给空为当前呼叫)

8. 被叫接听

原型:- ULSCall.answer(String callid);

功能:接听来电电话

返回:无

备注:用于被叫来电时,用户触发接听电话场景,被叫收到onIncomingCall事件后,可调用answer接口接听或调用reject接口拒绝接听。

参数:

参数名 类型 约束 说明
callId String 可选 当前通话id

9. 取消回拨

原型:- ULSCall. cancelCallBack (Context mContext,String callid);

功能:取消回拨呼叫

返回:无

备注:用于回拨呼叫发起后,主动取消呼叫的场景。

参数:

参数名 类型 约束 说明
mContext Context 必选 当前上下文
callid String 必选 回拨成功后返回的呼叫ID

10. 发送DTMF

原型:- ULSCall.sendDTMF(String callid,String keyCode);

功能:发送DTMF信息

返回:无

备注:用于通话过程中发送DTMF场景。

参数:

参数名 类型 约束 说明
callid String 必选 呼叫ID
keyCode String 必选 0-9,*,#,+

11. 设置扬声器

原型:- ULSCall.setSpeakerphone(boolean isSpeakerphoneOn);

功能:设置扬声器状态,开启或关闭

返回:无

备注:用于通话过程中开启或关闭免提场景。

参数:

参数名 类型 约束 说明
isSpeakerphoneOn boolean 必选 false:关闭 true:打开

12. 获取扬声器状态

原型:- ULSCall.isSpeakerphoneOn();

功能:获取当前麦克风是否开启状态

返回:true:扬声器开启; false:扬声器关闭

备注:用于通话过程中判断扬声器是否开启场景。

参数:无

13. 设置静音

原型:- ULSCall.setMicMute(boolean isMicMute);

功能:设置静音状态,开启或关闭

返回:无

备注:用于通话过程中开启或关闭静音场景(开启后,自己能听到对方的声音,对方听不到自己的声音)。

参数:

参数名 类型 约束 说明
isMicMute boolean 必选 true:静音 ;false:正常

14. 获取静音状态

原型:- ULSCall.isMicMute();

功能:获取当前静音是否开启状态

返回:true:静音开启; false:静音关闭

备注:用于通话过程中判断静音是否开启场景。

参数:无

15. 设置主叫当前手机号码

原型:- ULSCall.setSelfPhoneNumber(String phoneNumber);

功能:设置当前登录帐号的手机号码

返回:无

备注:语音通话中,被叫显示的号码,如果不设置,刚为隐藏号码。

参数:

参数名 类型 约束 说明
phoneNumber String 必选 手机号码

VoIP回调函数

1. 接到呼叫

原型:onIncoming(ULSCallIncomingInfo callInfo);

功能:来电话时候回调函数

返回:无

备注:用于通话,被叫侧接收到云平台下发呼叫的场景。应用接收到该事件后,需要提醒用户来电或者根据自己业务逻辑拒绝来电。

参数:

参数名 类型 约束 说明
callInfo ULSCallIncomingInfo 必选 来电相关信息

2. 主叫呼叫振铃中,用于通知主叫,被叫在响铃

原型:- onAlerting (String callid);

功能:呼叫振铃中,用于通知主叫,被叫在响铃

返回:无

备注:用于通话,主叫侧接收到云平台下发的呼叫回铃应答场景。外呼时,被叫如有回应,就返回该事件。当收到该事件时,对方会响起振铃音,本地会响起回铃音。

参数:

参数名 类型 约束 说明
callid String 可选 当前通话id

3. 被叫响铃

原型:- onRingIng (String callid);

功能:收到来电后,通知被叫前台,我开始响铃了

返回:无

备注:用于通话,被叫侧接收到云平台下发的呼叫确认,用于确定主收到回应

参数:

参数名 类型 约束 说明
callid String 可选 当前通话id

4. 被叫接听

原型:- onAnswer(String callid);

功能:通话被叫应答回调函数

返回:无

备注:用于通话,主叫侧接收到云平台下发的呼叫接听应答场景。外呼时,被叫如有回应接听,就返回该事件。当收到该事件时,表明对方已经应答接听,进入通话状态,应用需要提醒用户已经进入通话状态。

参数:

参数名 类型 约束 说明
callid String 可选 当前通话id(目前版本可以为空)

5. 呼叫失败

原型:- onCallFailed (String callid,ULSReason reason);

功能:通话呼叫失败回调函数

返回:无

备注:用于通话,主叫侧接收到云平台下发的呼叫失败应答场景。外呼时,如呼叫失败,就返回该事件。外呼失败的原因有很多,可以根据reason来判断。

参数:

参数名 类型 约束 说明
callid String 可选 当前通话id(有可能为空)
reason ULSReason必选 呼叫失败的原因详细请参见<状态码>

6. 呼叫被释放

原型:- onHangUp(String callid,ULSReason reason);

功能:释放通话事件回调函数

返回:无

备注:用于通话,通话过程中主动释放通话场景。通话过程中,呼叫释放,就返回该事件。外呼过程中,呼叫释放,只调用onCallFailed事件代理。

参数:

参数名 类型 约束 说明
callid String 可选 当前通话id
reason ULSReason 必选 呼叫失败的原因详细请参见 : 状态码

7. 回拨成功

原型:- onCallBackSuccess(String callId);

功能:回拨成功事件回调函数

返回:无

备注:用于回拨呼叫场景。接收到云平台应答后,回调该接口。回拨失败原因有很多,可以根据reason来判断。

参数:

参数名 类型 约束 说明
callid String 可选 当前通话id

8. 取消回拨

原型:- onCancelCallBackStatus(String callId,ULSReason reason);

功能:取消回拨成功事件回调函数

返回:无

备注:用于取消回拨呼叫场景。接收到云平台应答后,回调该接口。回拨成功与失败原因有很多,可以根据reason来判断。

参数:

参数名 类型 约束 说明
callid String 可选 当前通话id
reason ULSReason 必选 呼叫失败的原因详细请参见 : 状态码

9. 准备发起呼叫

原型:- onCallReadyStart(String calledNumner);

功能:所有呼叫发起前通知前台

返回:无

备注:用于SDK通知前台我准备正式的发起呼叫,让开发者进行异步操作一些事情

参数:

参数名 类型 约束 说明
calledNumner String 必选 发起呼叫的电话号码或者Client账号ID

10. 通话模块释放

原型:- onCallFinish();

功能:用于每一次通话结束后释放通知

返回:无

备注:用于通话,语音通话结束后,会进行回调该事件;回拨会在发起成功或者失败后,立即回调

参数:无

想了解更多信息,请咨询 : 400-602-6182

免费电话咨询