首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在星号PBX上获取用于传出呼叫的sip报头

在星号PBX上获取用于传出呼叫的sip报头
EN

Stack Overflow用户
提问于 2018-09-26 15:37:15
回答 2查看 3.9K关注 0票数 0

这就是我的拨号计划(/etc/asterisk/extensions.conf)的样子:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[default]
  exten => _X.,1,NoOp(New call from ${EXTEN} ! )
  same => n,NoOp( The header X-Twilio-CallSid =  ${SIP_HEADER(X-Twilio-CallSid)})
  same => Dial(SIP/SomePeer)
  ... etc

由于函数标头,我能够获得我的提供者发送给我的呼叫的id。这是我使用WireShark捕获的第一个数据包:

换句话说,${SIP_HEADER(X-Twilio-CallSid)} = ACbccc967c48dda15d8d1c9b34961d19a0

--这对来电非常有用。现在我的问题是打电话。在响应调用之前,sip报头X-Twilio-CallSid不存在。,一旦呼叫被应答,我如何读取那个标头?,我尝试过在呼叫挂断后放置${SIP_HEADER(X-Twilio-CallSid)}。分析通过Wireshark的通信量,消息头出现在INVITE请求之后。

EN

回答 2

Stack Overflow用户

发布于 2018-09-30 07:41:24

SIP_HEADER功能只适用于一个数据包-入站第一次邀请消息。

您已经使用c/c++编写了自己的函数,或者使用了其他一些软件,如homer/sipcapture。

票数 1
EN

Stack Overflow用户

发布于 2018-10-02 15:17:19

我还没有测试这一点,但是根据医生的说法,您可以将应答后处理程序编写为宏(使用M())或GoSub (使用U()):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[outbound-twilio]
exten => _X.,1,Dial(SIP/${EXTEN}@twilio-trunk,,M(post-answer))

[macro-post-answer]
exten => s,1,Verbose("Answer header shows ${SIP_HEADER(X-Twilio-CallSid)}")
same => s,n,Return()

我不确定这是否会有所不同,因为INVITE事务可能只跟踪初始请求,而不是响应,即使我们从另一个通道执行它。您还可以考虑切换到chan_pjsip,它有PJSIP_HEADER

PJSIP_HEADER允许您从入站PJSIP通道读取特定的PJSIP_HEADER,以及在出站通道上写入(添加、更新、删除)报头。一个例外情况是,您可以读取已在出站通道上添加的标头。

也许这是与chan_sipSIP_HEADER函数不同的实现?

另外,书中还有更多的宏文档

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52527408

复制
相关文章
AlertDialog.Builder中的setMultiChoiceItems中的事件处理[通俗易懂]
因为实习项目中涉及到类似于时钟设置闹钟反复时间的原因须要使用对话框的方式呈现。因为DialogFragment眼下还没实验出嵌套Fragment的方法。所以临时先用AlertDialog.Builder中的setMultiChoiceItems取代,因为网上搜索时都仅仅有显示的代码,没有关于点击事件进行操作的演示样例。所以依据项目自己整理了一下
全栈程序员站长
2022/07/08
7780
AlertDialog.Builder中的setMultiChoiceItems中的事件处理[通俗易懂]
Docker为何未在生产环境中取得广泛成功?
Docker的发展势头一天比一天强劲,它显然在试图解决实际的问题。然而,对如今许多的生产环境用户来说,没有出现优点压倒缺点的局面。在开发、测试和持续性集成等环境下,Docker在让容器吸引广大开发人员方面确实有上佳的表现,不过它还没有颠覆生产环境。按照DockerCon 2015的“生产环境下的Docker”这一主题,我想公开讨论Docker想在生产环境使用场合下得到广泛采用还没有克服的种种挑战。这里提到的问题没有一个是新问题,它们都以某种形式出现在GitHub上。大多数问题我已经在大会演讲中或与Docke
静一
2018/03/23
1.4K0
AlertDialog的几种用法
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/155132.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/06
4200
AlertDialog的几种用法
信息提醒之对话框(AlertDialog + ProgressDialog)-更新中
Android中的对话框需要使用AlertDialog类来显示,主要用于显示提醒信息,不过这个对话框类可不仅仅能用来显示一些信息,我们可以在对话框中防止任何的控件,使其成为一个复杂且功能强大的用户接口。一个典型的例子就是使用AlertDialog做一个登录对话框。
小小工匠
2021/08/16
4.5K0
对话框(AlertDialog)使用
image.png 目录 AlertDialog AlertDialog也就处对话框。 使用方式分为6种: 简单dialog 列表dialog 单选dialog 多选dialog 自定义dialog 使用adapter的dialog 举例第一种的使用 代码: AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setIcon(R.mipmap.ic_launcher_round);
李小白是一只喵
2020/04/24
1.9K0
AlertDialog点击确定不消失
但这样我们点击确定按钮的时候AlertDialog会默认消失掉。 但如果我们在弹窗里添加一个EditText输入框,判断如果输入框为空的时候弹提示而告诉用户输入框为空,请输入内容。 这种情况就需要保留AlertDialog让它不消失。
longzeqiu
2019/08/14
2.9K0
[Android][Framework]从全局AlertDialog聊聊WindowManager
在SystemUI里添加了一个broadcastReceiver,需求接收到消息后弹出一个用户提示
wOw
2020/01/20
9580
【Android进阶】flutter-alertdialog
class MyAlertDialog extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( title: 'AlertDialog组件示例', home: Scaffold( appBar: AppBar( title: Text('AlertDialog组件示例'), ),
程序员小何SS
2022/01/05
4280
Android之AlertDialog的基本使用
坦白说,AlertDialog我在工作中用得并不多,因为AlertDialog的样式比较固定和呆板,为了和App的整体设计匹配,一般都是使用自定义的Dialog,只有在要求不高时用一下。但是作为Android的基础控件之一,掌握它是十分有必要。网上相关的资料已经多如牛毛,一搜就有好几页。但我还是决定写一篇自己的博客。
233333
2021/04/09
1.5K0
Android之AlertDialog的基本使用
android入门 — AlertDialog对话框
  常见的对话框主要分为消息提示对话框、确认对话框、列表对话框、单选对话框、多选对话框和自定义对话框。   对话框可以阻碍当前的UI线程,常用于退出确认等方面。   在这里主要的步骤可以总结为:   1.创建AlertDialog.Builder对象;   2.调用setTitle()或setCustomTitle()方法设置标题;   3.调用setIcon()设置图标;   4.调用setPositiveButton()、setNegativeButton()或setNeturalButton()添加
Mister24
2018/05/14
1.1K0
Winserver下的Hyper-v “未在远程桌面会话中捕获到鼠标”
异常处理汇总-服 务 器 http://www.cnblogs.com/dunitian/p/4522983.html 服务器相关的知识点:http://www.cnblogs.com/dunitia
逸鹏
2018/04/11
5K0
Winserver下的Hyper-v “未在远程桌面会话中捕获到鼠标”
android推荐使用dialogFrament而不是alertDialog
DialogFragment在android 3.0时被引入。是一种特殊的Fragment,用于在Activity的内容之上展示一个模态的对话框。典型的用于:展示警告框,输入框,确认框等等。 在DialogFragment产生之前,我们创建对话框:一般采用AlertDialog和Dialog。注:官方不推荐直接使用Dialog创建对话框。 2、 好处与用法 使用DialogFragment来管理对话框,当旋转屏幕和按下后退键时可以更好的管理其声明周期,它和Fragment有着基本一致的声明周期。且Dia
xiangzhihong
2018/01/29
2.4K0
android推荐使用dialogFrament而不是alertDialog
笔记17 | 复习AlertDialog(对话框)示例
前言 本节给大家带来是显示提示信息的第三个控件AlertDialog(对话框),查看源码知道是Dialog的子类!ProgressDialog,TimePickerDialog父类等。另外,会发现构造方法是保护的,如果我们要创建AlertDialog的话,我们需要使用到该类中的一个静态内部类:public static class Builder,然后来调用AlertDialog里的相关方法,来对AlertDialog进行定制,最后调用show()方法来显示我们的AlertDialog对话框!好的,下面我们
项勇
2018/06/19
6580
Builder设计模式和AlertDialog的源码分析
Builder模式是一步步创建一个复杂对象的创建型模式,它允许用户在不知道内部构建细节的情况下,可以更精细的控制对象的构造流程。该模式是为了将构造复杂对象的过程和它的部件解耦,使得构建过程和部件的表示隔离开来。
见得乐
2022/07/20
3810
Android里AlertDialog多种使用方法及DEMO
我们在使用Android的APP时经常会点击某个按钮弹出来选择的对话框提供选项,选择的对话框也可以分为多样,如确定取消类型,单选类型,复选类型,列表类型等.在Android中实现这个我们都可以用到AlterDialog进行实现.
Vaccae
2019/07/24
1.8K0
所选的用户密钥未在远程主机上注册
部署新服务器的时候,将登陆方式从密码登陆改为密钥登陆。在使用xshell验证密钥登陆的时候提示(报错):所选的用户密钥未在远程主机上注册.
行 者
2023/10/20
7480
Android弹窗二则: PopupWindow和AlertDialog
android.support.v7.app.AlertDialog.Builder builder = new android.support.v7.app.AlertDialog.Builder(this);
sean_yang
2018/09/04
1.6K0
Android弹窗二则: PopupWindow和AlertDialog
点击加载更多

相似问题

PHP显示从数据库检索到的HTML

35

从数据库检索所有数据到html表

11

使用php从数据库检索数据到html文件

13

从数据库检索不正确的值

10

从数据库检索HTML标记后添加CSS类到HTML标记

04
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文