问题标签 [sofia-sip]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1192 浏览

sip - Sofia-SIP:会话设置

有人有使用 Sofia-Sip 的经验吗?

我正在尝试接听来电。我管理它来创建一个会话,但没有建立媒体流......

有人对此有一个简单的例子吗?我已经看过 sofia-sip 和telepathy-rakia的 CLI 客户端,它们都很复杂。

我对媒体还不太熟悉。我想接听来电,并获取 G.711 有效负载以进一步处理它。

任何帮助表示赞赏

0 投票
1 回答
499 浏览

ios - 为 i386/armv7 构建的 Sofia SIP

我认为我的最后一个问题太不具体了。
所以我的下一个更好。\

如何为 i386 和 amrv7 编译 Sofia-Sip 库?
能得到答案就太好了!

谢谢各位,
亚历山大·海因里希

0 投票
1 回答
311 浏览

sip - 最新的 Sofia-Sip 自动回复 200 到传入的 INFO

我正在使用 sofia-sip 库(一个开源、跨平台的 SIP 堆栈),我看到的是它会自动响应传入的 SIP INFO,即使 INFO 消息属于已经被破坏的 SIP 对话框。 . 有没有人遇到过同样的问题?以前版本的库似乎没有显示这种行为。

0 投票
1 回答
311 浏览

sip - 返回 486 sipp 场景时如何重试

我想在sipp中完成这个场景。

当我拨打电话时,如果它返回 486 状态(忙),它可以调用暂停一段时间,然后继续调用。

0 投票
2 回答
1819 浏览

ios - 为 iOS 编译 Sofia-SIP

我正在尝试为 iOS 架构编译Sofia-SIP 库armv6armv7但我遇到了问题。下面是我正在做的事情。

结果

问题

我希望脚本使用llvm-gcc编译器。但相反,它正在寻找arm-apple-darwin10-gcc它找不到的东西,然后最终使用gcc编译器。

0 投票
2 回答
1093 浏览

freeswitch - 如何修改 Freeswitch 中对 SIP 消息的处理?

freeswitch在接收REFER来自Avaya SIP中继的消息时,我需要进行特殊处理。但我不确定是否允许用户在收到Sofia-SIP时指定回调挂钩。REFER我还没有找到一个。

我想添加一个自定义freeswitch模块来处理REFER. 如何Sofia-SIP在处理时强制将控制权交给我的自定义模块REFER

0 投票
1 回答
613 浏览

sip - 如何在索非亚 SIP 中更改 SIP BYE 消息的目的地

让我先描述一下我的问题。我将 Sofia SIP 用于电话应用程序,并且我使用的 SIP 代理位于 NAT 后面。这意味着来自代理的传入邀请具有内部代理 IP(例如 10.0.0.1)作为联系人标头。这意味着当我从我的应用程序中挂断电话时,Sofia 会自动将 IP 10.0.0.1 设置为 BYE 消息的目的地,正如您可以想象的那样,它是不可路由的,因此它失败了。

所以我想要做的是将 BYE 消息的目的地更改为“外部”代理 IP 地址。问题是 Sofia 似乎不允许我更改 SIP 消息的目的地;它总是使用收到邀请时获得的联系方式。这是我尝试过的:

  1. 为 SIPTAG_TO 强制执行硬编码值:

    nua_bye(op->op_handle, SIPTAG_TO(sip_to_make(ssc->ssc_home, "sip:alice@54.15.123.11")), TAG_END());

结果是 To 标头已使用外部 ip 更新,但 SIP 消息仍发往内部代理 ip

  1. 将硬编码值强制为 NUTAG_URL:

    sip_to_t * to = sip_to_make(ssc->ssc_home, "sip:alice@54.15.123.11");

    ua_bye(op->op_handle, NUTAG_URL(to->a_url), TAG_END());

这没有效果。

  1. 为 SIPTAG_REQUEST_STR 强制执行硬编码值:

    nua_bye(op->op_handle, SIPTAG_REQUEST_STR("BYE sip:alice@54.15.123.11 SIP/2.0"), TAG_END());

这没有效果。

  1. 做了同样的事情,但通过事务句柄:

    nua_set_hparams(op->op_handle,SIPTAG_REQUEST_STR("BYE sip:alice@54.15.123.11 SIP/2.0"), TAG_NULL());

    nua_bye(op->op_handle, TAG_END());

又没效果

然后,当传入的 INVITE 从代理到达并且可能会更改联系人时,我想早一点去,因为这是发送后续 BYE 的地方,但再次没有运气:尝试通过 nua_set_hparams 更新它对全局没有效果带有 nua_set_params 的参数。

似乎我想做的事情非常简单(考虑到那里的 NAT 配置,这是必要的),但似乎索非亚明确禁止它(如果您查看 nua_bye 文档,则没有任何相关的 TAGS 文档记录)。

我还考虑过使用 Sofia 的一种较低级别的 API,例如 NTA(而不是 NUA),但似乎很难将 NUA 与任何较低级别的 API 混合使用。

任何想法都非常受欢迎

此致,

安东尼斯

0 投票
0 回答
214 浏览

sip - 如何使用 Sofia SIP 忽略来电

忽略我的意思是告诉本地 SIP 堆栈删除传入呼叫的​​所有资源,但不发送任何 SIP 消息。

我尝试使用 nua_handle_destroy() 来处理未回答的索非亚句柄(即不发送再见,或使用“错误”代码回答),但索非亚似乎无论如何都会生成响应。

有没有办法避免这种情况?我已经能够使用 JAIN SIP 堆栈而不是 Sofia 来做到这一点。

最好的问候,安东尼斯

0 投票
0 回答
152 浏览

sip - 使用 TCP 传输时,Sofia SIP 未发送 REGISTER 刷新

我注意到,由于某种原因,当我在 Sofia SIP 堆栈中将传输从 UDP 更改为 TCP 时,不会发送 SIP 注册刷新。只有第一个 REGISTER 被正确发送,然后什么也没有。

另一方面,如果我使用 UDP 作为传输,使用完全相同的设置,我可以正确地获得 REGISTER 刷新而没有问题。

任何想法可能是什么问题?

最好的问候, 安东尼斯 Tsakiridis

0 投票
1 回答
241 浏览

restcomm - RestComm iOS SDK 的 sofia-sip-ua 库编译

我正在尝试 RestComm iOS SDK 并坚持使用 Sofia-sip-ua 库。无法编译。请为此提供一些帮助。

我正在使用 https://github.com/RestComm/restcomm-ios-sdk提供的库代码

我在 El Capitan 10.11.6 上有 Xcode 7.3 和 Xcode 8