首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >拨号方案中的书签功能

拨号方案中的书签功能
EN

Stack Overflow用户
提问于 2012-02-09 17:01:58
回答 1查看 51关注 0票数 0

我正在用Asterisk编写一个拨号方案,在这里我需要实现一个书签功能。如果用户呼入且呼叫断开,则在重拨时,用户必须转到上次呼叫掉线或断开的同一剪辑。拨号方案(带有书签功能)目前看起来如下所示:

代码语言:javascript
复制
[some-context]
exten => 0,n,System(progressmarker.sh ${CALLERID(num)} ${CONTEXT})
exten => 0,1,Background(wav1)
exten => 0,n,Background(wav2)

有成百上千个这样的命令。progressmarker获取上下文并将其放入一个文件中。当用户想要继续旧的会话时,它从用户所处的最后一个上下文开始。如果呼叫在wav1wav2之后掉线,则用户应从wav1wav2开始,而不是从最后一个上下文开始。

有一种方法可以做到这点:

代码语言:javascript
复制
exten => 0,n(wav1),Background(wav1)&System(progressmarker.sh ${CALLERID(num)} ${CONTEXT} wav1)  

但是你可以看到这种方式是不优雅和麻烦的,特别是因为有成百上千的这样的命令。有没有更好的方式来实现书签功能?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-02-10 15:40:34

实现这一点的一种方法是使用h扩展。这是通道遇到挂断时调用的扩展。解决方案将如下所示:

  1. 将优先级保存在全局变量中。
  2. 为每个情景实施挂机扩展。通道变量,如last context、extension和priority都是可访问的(与文档所说的相反)。该扩展将如下所示:

exten => h,1,System(<Execute a script here that saves the last context, extension and priority to a file that can be read later and control returned here.>)

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

https://stackoverflow.com/questions/9207890

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档