1、有联云提供了一个用于在互联网上实时语音通信的平台。它提供了软件开发工具包–ULS SDK,您与您的智能手机应用程序基于云的后端服务进行实时的语音通信,除此之外有联云SDK还支持公共交换网络(PSTN)形式的高质量语音终端通信
2、我们的语音通信形式
3.音频通话支持的平台有哪些?
支持的平台:Android iOS Windows。
4.如何开始?
VoIP能力接口
目的是提供发送VoIP和互联网语音的能力接口。
1. 添加呼叫状态回调
原型:- ULSCall.addCallStateListener(CallStateListener listener)
功能:呼叫状态回调
返回:无
备注:每一发起新呼叫前调用函数,同时呼叫结束后系统会自动去除
参数:
参数名 | 类型 | 约束 | 说明 |
---|---|---|---|
listener | CallStateListener | 必选 | 监听接口 |
2. 发起呼叫(不含回拨)
原型:- ULSCall.dial(Context mContext,ULSCallType callType,String calledNumner);
功能:发起VoIP语音(免费、直拨、智能)呼叫
返回:无
备注:
参数:
参数名 | 类型 | 约束 | 说明 |
---|---|---|---|
mContext | Context | 必选 | 程序上下文 |
callType | ULSCallType | 必选 | 拨打电话方式, 类型为: P2P:免费、 DIRECT:直拨、 AUTO:智能呼叫(入参为手机号码) |
calledNumber | String | 必选 | 被叫手机号码或Client账号 |
3. 发起呼叫(透传参数)
原型:- ULSCall.dial(Context mContext,ULSCallType callType,String calledNumner,String userData);
功能:发起VOIP语音(免费、直拨、智能)呼叫
返回:无
备注:
参数:
参数名 | 类型 | 约束 | 说明 |
---|---|---|---|
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语音(免费、直拨、智能)呼叫
返回:无
备注:
参数:
参数名 | 类型 | 约束 | 说明 |
---|---|---|---|
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();
功能:用于每一次通话结束后释放通知
返回:无
备注:用于通话,语音通话结束后,会进行回调该事件;回拨会在发起成功或者失败后,立即回调
参数:无