SIP 消息定义

SIP 消息定义

1**:请求收到,继续处理
2**:操作成功收到,分析、接受
3**:完成此请求必须进一步处理
4**:请求包含一个错误语法或不能完成
5**:服务器执行一个完全有效请求失败

100――客户必须继续发出请求
101――客户要求服务器根据请求转换HTTP协议版本

200――交易成功
201――提示知道新文件的URL
202――接受和处理、但处理未完成
203――返回信息不确定或不完整
204――请求收到,但返回信息为空
205――服务器完成了请求,用户代理必须复位当前已经浏览过的文件
206――服务器已经完成了部分用户的GET请求

300――请求的资源可在多处得到
301――删除请求数据
302――在其他地址发现了请求数据
303――建议客户访问其他URL或访问方式
304――客户端已经执行了GET,但文件未变化
305――请求的资源必须从服务器指定的地址得到
306――前一版本HTTP中使用的代码,现行版本中不再使用
307――申明请求的资源临时性删除

400――错误请求,如语法错误
401――请求授权失败
402――保留有效ChargeTo头响应
403――请求不允许
404――没有发现文件、查询或URl
405――用户在Request-Line字段定义的方法不允许
406――根据用户发送的Accept拖,请求资源不可访问
407――类似401,用户必须首先在代理服务器上得到授权
408――客户端没有在用户指定的饿时间内完成请求
409――对当前资源状态,请求不能完成
410――服务器上不再有此资源且无进一步的参考地址
411――服务器拒绝用户定义的Content-Length属性请求
412――一个或多个请求头字段在当前请求中错误
413――请求的资源大于服务器允许的大小
414――请求的资源URL长于服务器允许的长度
415――请求资源不支持请求项目格式
416――请求中包含Range请求头字段,在当前请求资源范围内没有range指示值,请求也
不包含If-Range请求头字段
417――服务器不满足请求Expect头字段指定的期望值,如果是代理服务器,可能是下一
级服务器不能满足请求

500――服务器产生内部错误
501――服务器不支持请求的函数
502――服务器暂时不可用,有时是为了防止发生系统过载
503――服务器过载或暂停维修
504――关口过载,服务器使用另一个关口或服务来响应用户,等待时间设定值较长
505――服务器不支持或拒绝支持请求头中指定的HTTP版本
属于WAP网关内部错误自定义状态码:
700:表示WAP网关的内存不够。
701:表示WAP网关到Radius Server查询用户的信息失败。
702:表示WAP网关内容适配转换失败。
703:由于WAP网关内部处理时间过长,虽然页面已经从SP到达WAP网关,但页面没有及时下发到终端导致用户取消。

属于客户端错误的自定义状态码有:
730:表示客户端的请求不完整。
731:表示用户输入的网址可能含有空格。
732:表示用户输入的网址可能含有URI中不允许的字符。
733:表示WAP网关不支持FTP协议。
734:表示客户端不支持响应类型。
735:错误的输入参数

属于SP服务器错误的自定义状态码有:
760:表示与远端服务器建立连接失败。
761:表示远端服务器返回的响应有语法错误。
762:表示WAP网关从远端服务器读取数据失败。
763:表示远端服务器的响应头不完整。
764:表示远端服务器的响应内容采用的chunked编码有错误。

   属于无线网络问题:
  780:由于无线网络条件恶化,虽然页面已经从SP到达WAP网关,但页面无法通过网关下发到终端。
   
   属于用户自己问题:
   790:用户未获得全部页面而主动点击连接。

   799:其他错误

  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Java 可以使用 SIP API 来实现 SIP 消息发送。具体来说,可以使用下面的步骤来实现: 1. 安装并导入 SIP API 库。 2. 创建 SipFactory 对象并获取 SipStack 对象。 3. 创建 SipProvider 对象。 4. 创建并发送 Request 对象。 5. 通过 SipProvider 对象发送 Request 对象。 你还可以查看 Oracle 的文档,了解更多关于使用 SIP API 在 Java 中实现 SIP 消息发送的细节: https://docs.oracle.com/en/java/javase/14/docs/specs/sip/index.html 希望这能帮到你! ### 回答2: Java可以使用开源的SIP协议栈库,如MjSIP、JAIN-SIP或Jsip,来实现SIP消息的发送。 首先,需要导入相应的SIP协议栈库到Java项目中。这些库提供了SIP协议的实现和相关的类、接口,方便我们编写代码进行SIP消息的发送和接收。 接下来,我们需要创建一个用户代理(User Agent),用于发送SIP消息。用户代理可以是一个客户端(User Agent Client,UAC)或一个服务器(User Agent Server,UAS)。 如果我们要实现一个UAC,可以按照以下步骤: 1. 创建一个SipFactory对象,用于创建SipStack和MessageFactory。 2. 创建一个SipStack对象,用于管理SIP协议栈。 3. 创建一个SipProvider对象,用于发送和接收SIP消息。 4. 创建一个SipURI对象,指定接收方的SIP地址。 5. 创建一个FromHeader对象,表示消息的发送方。 6. 创建一个ToHeader对象,表示消息的接收方。 7. 创建一个CallIdHeader对象,标识一次会话。 8. 创建一个CSeqHeader对象,表示请求的序列号。 9. 创建一个MaxForwardsHeader对象,指定SIP消息的最大跳数。 10. 创建一个Request对象,表示SIP请求消息,如INVITE、REGISTER等。 11. 使用MessageFactory创建请求头,如ViaHeader、ContactHeader等。 12. 设置请求的有效载荷,如SDP(Session Description Protocol)等。 13. 设置适当的SIP请求头字段,如FromHeader、ToHeader、CallIdHeader等。 14. 发送SIP消息。 以发送一个INVITE请求为例: ```java SipFactory sipFactory = SipFactory.getInstance(); SipStack sipStack = sipFactory.createSipStack(); SipProvider sipProvider = sipStack.createSipProvider(sipStack.createListeningPoint(localAddress, localPort, transport)); SipURI toAddress = sipFactory.createAddressFactory().createSipURI(null, remoteAddress); FromHeader fromHeader = sipFactory.createHeaderFactory().createFromHeader(fromAddress, null); ToHeader toHeader = sipFactory.createHeaderFactory().createToHeader(toAddress, null); CallIdHeader callIdHeader = sipProvider.getNewCallId(); CSeqHeader cSeqHeader = sipFactory.createHeaderFactory().createCSeqHeader(1, Request.INVITE); MaxForwardsHeader maxForwardsHeader = sipFactory.createHeaderFactory().createMaxForwardsHeader(70); Request request = sipFactory.createMessageFactory().createRequest(toHeader.getAddress().getURI(), Request.INVITE, callIdHeader, cSeqHeader, fromHeader, toHeader, Collections.singletonList(maxForwardsHeader)); // 设置请求头字段 ViaHeader viaHeader = sipFactory.createHeaderFactory().createViaHeader(localAddress, localPort, transport, null); request.addHeader(viaHeader); // 设置请求的有效载荷 ContentTypeHeader contentTypeHeader = sipFactory.createHeaderFactory().createContentTypeHeader("application", "sdp"); request.setContent(sdp, contentTypeHeader); // 发送SIP消息 sipProvider.sendRequest(request); ``` 以上就是通过Java实现SIP消息发送的基本步骤。通过使用开源的SIP协议栈库,我们可以方便地编写Java代码来实现与SIP服务器的通信。 ### 回答3: Java可以使用第三方的SIP库或者使用原生的Java API来实现SIP消息的发送。 第一种方法是使用第三方的SIP库,例如通过使用MjSIP、PJSIP等库来实现SIP消息的发送。这些库提供了丰富的API和功能,可以方便地创建和发送SIP消息。可以通过引入这些库的相关jar包,并按照相应的API文档进行调用,实现SIP消息的发送。 另一种方法是使用Java的原生API来实现SIP消息的发送。Java提供了javax.sip包,其中定义了一组用于实现SIP协议的类和接口。可以使用这些类和接口来创建和发送SIP消息。首先需要创建一个SipFactory对象,然后使用该对象创建SipProvider对象,最后使用SipProvider对象创建和发送SIP消息。可以通过调用相应的方法设置SIP消息的内容、头部信息、发送地址等,然后调用sendRequest或sendResponse方法发送SIP消息。 需要注意的是,为了实现SIP消息的发送,需要提供正确的SIP服务器地址和端口号,并且需要有合法的SIP账号和认证信息。此外,还需要处理SIP消息的返回、超时等情况,以保证消息的可靠发送和处理。 总之,Java可以通过使用第三方的SIP库或Java的原生API来实现SIP消息的发送,具体的实现方法和步骤会根据具体的库和API而有所不同。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值