检测与Asterisk的呼叫接听以及呼叫将要发生的呼叫

Rya*_*nch 4 c# telephony asterisk

我目前正在编写一个Windows服务,它使用Asterisk AMI来检测呼叫何时进入,然后根据呼叫来自谁以及将要进入的人执行Web请求.有没有人知道Asterisk中的一个事件,我可以听到包括这两个细节?我需要系统外呼叫的人的号码,但是我可以用来识别被呼叫的内部电话号码的任何东西都可以,只要它可以在星号之外使用.

我正在查看事件,他们都有外部调用者的号码,但是除了使用uniqueid之外,他们都没有链接到内部调用者,除非我在服务中构建这些字典而不能使用.

有没有人有任何想法?

Rya*_*nch 6

所以最后我设法通过仅使用AMI并监听呼叫事件来做到这一点.根据我们想要访问的内容,我收听了Newchannel事件,拨打事件和Hangup事件,尽管如果您只是呼叫的人数和他们呼叫的人数,我很确定您可以通过监控来逃避只是拨号事件.

每次收到Newchannel事件时,我都会创建一个Channel对象,并将其添加到当前位于Asterisk服务器上的Channel列表中.然后,通过使用Subevent of Begin收听Dial事件,我能够提取呼叫中涉及的双方的唯一信道ID,然后获取所涉及的号码.收到Hangup事件后,我删除了正在销毁的频道.这似乎现在工作得很好,虽然我们没有足够的时间来测试它,所以希望它是正确的.