用于openips转换的星号。所有帮助appresciated

时间:2014-05-27 08:33:32

标签: asterisk opensips

努力将有效的星号服务器转换为opensips,以获得更好的性能

在大多数情况下它正在运作,但我遇到了一个我无法弄清楚的问题。

asterisk这样做:

if ("${fromourmobile}" != "") // Check if mobile Call Waiting is set to "n"
                {
                    set(phonenumber=${FROM});
                    set(GROUP()=${phonenumber});
                    noop(Group Count: ${GROUP_COUNT(${phonenumber})});
                    if (${GROUP_COUNT(${phonenumber})} > 1)
                    {
                        Busy();
                    }
                 }

和这个

if (${MATH(${EPOCH} % 2)} = 0)
                {
                    set(dialhost=193.88.58.86);
                    Dial(SIP/${numbertodial}@${dialhost},60,wWtT);
                    &hangupcausecheck(${numbertodial}, ${dialhost});
                    switch (${DIALSTATUS}) 
                    { 
                        case BUSY: 
                            busy;
                            break;
                        default:
                            break;
                    }   
                    set(dialhost=195.215.252.15);
                    Dial(SIP/${numbertodial}@${dialhost},60,wWtT);
                    &hangupcausecheck(${numbertodial}, ${dialhost});
                    switch (${DIALSTATUS}) 
                    { 
                        case BUSY: 
                            busy;
                            break;
                        default:
                            break;
                    }   

我似乎无法在opensips中找到类似的方法,主要是group_count()和hangupcausecheck()

此外是否有等同于星号的$ server变量?

1 个答案:

答案 0 :(得分:1)

首先想你需要明白是

Asterisk是类似pbx的软件。 Opensips是PROXY软件。

在Opensips中没有GROUP,播放等。对于编程opensips,您已经是编程专家,并且完全了解SIP协议的工作原理。

可以使用对话框和缓存服务器模拟通道数。但是,如果您在BYE / CANCEL处理中配置任何单个错误,它将无法工作。在大多数情况下,检查通道无法激活(因为它不跟踪通道的RTP数据)。

没有像Dial这样的应用程序。而不是你已经重写了INVITE数据包以获得正确的目的地/号码。