【问题标题】:SIP call using Peers Java API使用 Peers Java API 的 SIP 呼叫
【发布时间】:2015-07-20 14:21:39
【问题描述】:

我正在使用 java SIP 库 (http://peers.sourceforge.net/) 在我的应用程序中实现 SIP 呼叫。我正在寻找一个选项,通过它我可以根据用户邀请其他用户进行呼叫直到远程(其他用户)不接受呼叫时生成的事件来处理我的 GUI 状态。

我见过calleepickup:

@Override
public void calleePickup(SipResponse sipResponse)

当呼叫接受/拒绝对话框出现在远程端时会触发此事件,但是我假设这是在远程接受呼叫时发生的。

与在任何情况下都不会调用响铃事件相同,无论我拨打或接听来自远程的呼叫。

@Override
public void ringing(SipResponse sipResponse)

知道如何添加此功能来处理我的拨号 GUI。

【问题讨论】:

  • 需要更多细节。你到底想发生什么,什么时候发生? GUI 是如何受到影响的?
  • 假设用户 1 邀请用户 2 进行 SIP 呼叫。通话已开始,但用户 2 仍不接听电话,因此通话双方均处于振铃状态。我希望在这种状态下,来自呼叫方的我会收到某种事件,直到 user2 不接听电话。
  • 事件通常表示状态改变,而不是状态保持不变。我原以为您想要一个事件来指示 user2 未能接听电话,而不是一个在发生这种情况之前一直触发的事件。那么我在这里错过了什么?
  • 有两种状态:振铃和接受/拒绝呼叫。在 API SIPListener 接口中,有 calleePickup() 方法,代表振铃状态和 remoteHangup() 当远程拒绝呼叫时。我正在寻找一个呼叫接受事件处理。
  • 好的,您可以获得许多回复。看起来你想要的是 200 OK 表示呼叫已被接受。 en.wikipedia.org/wiki/List_of_SIP_response_codes

标签: java sip


【解决方案1】:

看看https://github.com/ymartineau/peers/blob/master/peers-gui/src/main/java/net/sourceforge/peers/gui/EventManager.java

所有事件(来电、被叫代接、呼叫被拒绝等)都有方法。您应该管理自己的状态机来处理事件。

【讨论】:

  • 我从 EventManger 得到想法,现在尝试在被调用者“接听电话”时实现一个新事件。正如我在上面的评论中提到的,当被叫方出现呼叫对话框时,被叫方接听电话时触发的“被叫接听”方法并不完全正确。在任何情况下,“响铃”方法也不起作用。
  • 没有 calleepickup 真正匹配 200 ok 的接收。如果您之前在该答案之间有服务器,则这是服务器问题,而不是对等问题
猜你喜欢
  • 1970-01-01
  • 2018-12-30
  • 1970-01-01
  • 2014-10-20
  • 2014-12-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多