
Security News
Suno Breached via Shai-Hulud Worm, Leaked Code Exposes AI Music Scraping
A Shai-Hulud infection exposed Suno's source code, which shows the AI music startup stream-ripped tracks to train its models.
aliyun-voip-web-sdk
Advanced tools
阿里云融合通信voip-web-sdk,提供基于WebRTC适用于浏览器VoIP2PSTN或VoIP2VoIP通话场景的SDK。
接入可参考demo: https://github.com/pianzuozj/voip-web-demo
为保证稳定性,建议使用最新版chrome使用该功能
You can install it as dependency with npm/cnpm or yarn.
$ # save into package.json dependencies with -S
$ npm install aliyun-voip-web-sdk -S
$ # you can use cnpm for fast install
$ cnpm install aliyun-voip-web-sdk -S
$ # use yarn for install
$ yarn add aliyun-voip-web-sdk
客户端需要从阿里云申请融合通信账号后才能接入,为了保证安全性,融合通信SDK通过服务端下发的临时token作为身份标识与服务进行交互。临时token可通过融合通信服务pop接口从阿里云获得(详见服务端接入文档),并且具有时效性。SDK在token即将失效或其他需求而需要更新token时,会通过回调通知接入方,接入方需自行实现接口获取最新token并传递给SDK。

import {
AlicomRTC, // AlicomRTC实例
Errors, // 错误码
} from 'aliyun-voip-web-sdk'
/**
* 创始实例
*/
var rtc = new AlicomRTC()
/**
* 是否允许日志上传 默认不上传
* @param enable true 上传日志 false 取消上传日志
*/
setUploadEnable(enable)
/**
* 设置服务监听
*/
rtc.setServiceListener({
/**
* 服务连接成功,当前处于可用状态
*/
onServiceAvailable: function () {
// 此时可以开始呼叫操作
},
/**
* 服务连接失败、或者连接断开了,当前处于不可用状态,服务正在销毁。
* @param errCode {number} 错误码
* @param errMsg {string} 错误描述
*/
onServiceUnavailable: function (errCode, errMsg) {
},
/**
* 服务闲时
* @param errCode {number} 错误码
* @param errMsg {string} 错误描述
*/
onServiceIdle: function (errCode, errMsg) {
},
/**
* 作为被叫,收到点对点音频来电
* @param call {Call} 表示这通来电的call实例
*/
onReceivingAudioCall: function(call) {
// todo: 已有通话的情况下拒绝新呼入,或是挂断当前通话接听
},
})
/**
* 可选,设置默认的呼叫超时时间
*/
// rtc.setDefaultCallTimeout(30)
/**
* 使用RtcId初始化AlicomRTC实例
*/
rtc.initWithRtcId('RTCID', {
updateToken: function (tokenHandler) {
var token = {} // todo: 通过服务端接口获取Token
tokenHandler.setToken(token)
}
})
ServiceListener中的onServiceAvailable回调被唤起时,表示服务已经连接成功,此时可以开始创建VoIP2PSTN通话实例,设置并开始通话:/**
* 创建VoIP2Pstn的Call实例,每一次通话都需要生成一个Call实例
*/
var pstnCall = rtc.createVoIP2PstnCall('被叫号显', '被叫号码')
/**
* 创建VoIP2VoIP的Call实例,每一次通话都需要生成一个Call实例
*/
var voipCall = rtc.createVoIP2VoIPCall('被叫RtcID')
/**
* 开启服务端录音(可选)
*/
pstnCall.setServerRecordEnabled(true)
/**
* 本地禁音(可选)
*/
pstnCall.muteLocalAudio()
/**
* 本地取消禁音(可选)
*/
pstnCall.unmuteLocalAudio()
/**
* 发送dtmf (只能是0-9、*、#组成的字符串,最大长度不超过32位)
*/
pstnCall.sendDtmfData(dtmf)
/**
* 返回当前通话的channelId
*/
getChannelId(): string
/**
* 设置Call状态监听
*/
pstnCall.setCallListener({
/**
* 电话已通知到被叫方,被叫振铃中
* @param talk {Talk} 通话对象
*/
onCalleeRinging: function (talk) {},
/**
* 被叫已接听电话,正在连接中
* @param talk {Talk} 通话对象
*/
onCalleeConnecting: function (talk) {},
/**
* 电话拨通了可以正常通话了。被叫已接听
* @param talk {Talk} 通话对象
*/
onActive: function (talk) {},
/**
* 对端传来DTMF信息,每次回调只传入一个字符,如果是一连串输入的话则会多次回调,需要接入方自行根据时间戳处理
* @param dtmf {string} 对端传入的DTMF信息
* @param timestamp {number} 时间戳
* @param talk {Talk} 通话对象
*/
onDtmfData: function (dtmf, timestamp, talk) {},
})
pstnCall.start()
pstnCall.stop()
rtc.destroy()
| 错误码 | 数值 | 原因 |
|---|---|---|
| ERROR_MQTT_CONNECT_FAIL | 1000100 | mqtt连接失败 |
| ERROR_UPLOAD_TOKEN_FAIL | 1000104 | token上传失败 |
| ERROR_LOCAL_STOP | 2000000 | 本地主动挂断 |
| ERROR_REMOTE_HANGUP | 2000099 | 对端主动挂断 |
| ERROR_CALL_SELF | 2000100 | 拨打自己 |
| ERROR_CALL_EMPTY | 2000101 | 拨打电话为空 |
| ERROR_CALLEE_ALERTING_TIMEOUT | 2000103 | 被叫时,振铃超时 |
| ERROR_REMOTE_REFUSE | 2000106 | 主叫时,对端拒绝应答 |
| ERROR_REMOTE_CANCEL | 2000107 | 被叫时,对端取消呼叫 |
| ERROR_NO_ANSWER | 2000108 | 被叫无人接听 |
| ERROR_SERVICE_UNAVAILABLE | 2000113 | AlicomRTC服务不可用 |
| ERROR_LOCAL_DESTROY | 2000116 | 本地主动销毁服务 |
| ERROR_TIME_OUT | 2000102 | joinChannel超时 |
| ERROR_NETWORK_INVALID | 2000121 | 网络异常 |
| ERROR_MICROPHONE_NO_PERMISSION | 2000130 | 麦克风无权限 |
| ERROR_MICROPHONE_NO_DEVICE | 2000135 | 没有麦克风设备 |
| ERROR_MICROPHONE_NOT_ALLOWED | 2000136 | 浏览器不允许使用麦克风 |
| ERROR_MICROPHONE_NOT_READABLE | 2000137 | 系统禁用麦克风或者麦克风被占用 |
| ERROR_SERVER_BASE | 3000000 | 服务端返回业务异常的错误基准 |
| ERROR_SERVER_KICKED | 3110000 | 账号被登录或被踢 |
| ERROR_SERVER_UNAVAILABLE | 3110001 | 服务异常 |
| ERROR_MEDIA_BASE | 4000000 | 媒体sdk返回异常的错误基准 |
The MIT License
FAQs
阿里云 融合通信 VoIP SDK
We found that aliyun-voip-web-sdk demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 3 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
A Shai-Hulud infection exposed Suno's source code, which shows the AI music startup stream-ripped tracks to train its models.

Security News
Vercel is formalizing a monthly release program for Next.js. The change follows React2Shell and a sharp rise in AI-assisted vulnerability discovery.

Research
/Security News
11 malicious NuGet tools pose as game cheats to deploy Windows payloads, track hosts, and use Google Sheets for telemetry and control.