2010-09-02 12 views
7

Napisałem prosty plan wybierania w gwiazdce. Celem tego wybierania jest sprawdzenie numeru dzwoniącego połączenia przychodzącego i konkretnego zawieszenia :)!Gwiazdka przeciwko byłej dziewczynie Tarcza wybierania?

, ale ten plan taryfowy rozłącza wszystkie połączenia przychodzące z różnymi identyfikatorami rozmówcy.
Więc co mam zrobić? ; (

[general] 
    static=yes 
    writeprotect=yes 
    autofallthrough=yes 
    clearglobalvars=no 
    priorityjumping=yes 
    include "exten_gvars.inc" 

    [macro-queue] 
    exten => s, 1, Queue(${ARG1}) 

    [default] 
    exten => s, 1, Answer 
    exten => s/9999, 2 ,Hangup 
    exten => s, 2, BackGround(welcome) 
    exten => s, 3, Macro(queue,operator) 

Edit

mogę zmienić mój plan wybierania do tego, ale to nie działa, przychodzącego połączenia rozłączenia po dwa beep (wiem to nastąpić bo pomyłka w moim planie wybierania)

[general] 
static=yes 
writeprotect=yes 
autofallthrough=yes 
clearglobalvars=no 
priorityjumping=yes 
#include "exten_gvars.inc" 

[macro-monitor] 
exten => s, 1, MixMonitor(${UNIQUEID}.wav) 
exten => s, 2, SetCIDName(${UNIQUEID}#${CALLERIDNAME},a) 

[macro-defaultLine] 
exten => s, 1, Macro(monitor) 
exten => s, 2, Dial(SIP/${ARG1},60,T) 

[macro-queue] 
exten => s, 1, Macro(monitor) 
exten => s, 2, Queue(${ARG1}) 

[inbound] 
exten => _XX, 1, Macro(defaultLine,${EXTEN}) 

[default] 
exten => 123,1,GotoIf($[${CALLERID(num)} = XX]?reject:allow) 
exten => 123,n(allow),Answer 
exten => 123,n,BackGround(welcome) 
exten => 123,n,Macro(queue,operator) 
exten => 123,n(reject),BackGround(WTF) 
exten => 123,n,Hangup() 
include => inbound 
!
+0

więc pozwól mi na to pytanie trudniejsze !!!! Chcę, jeśli wywołanie 9999, najpierw usłyszeć plik dźwiękowy, a następnie odłożyć. – Rev

+0

Proszę sformułować pytanie jako coś lepszego niż "Więc co mam zrobić?" Jeśli nie jest to pytanie programistyczne, być może http://superuser.com jest lepszym miejscem. – Gabe

Odpowiedz

3

nie masz krok 2 dla pozostałych callerids i autofalltrhough jest włączona, co oznacza (w 1.6), które zostaną usunięte wywołanie po kroku 1.

[default] 
exten => s, 1, Answer 
exten => s/9999, 2 ,Hangup 
exten => s, 2, NoOp 
exten => s, 3, BackGround(welcome) 
exten => s, 4, Macro(queue,operator) 

Edytuj: Czy jesteś pewien, że callerID jest EXACTELLY 9999? Spróbuj zastąpić tę linię z

exten => s, 2, NoOp((${CALLERID(all)}) 

potem spojrzeć w konsoli i zobaczyć co CallerID jest.

zastosowanie:

asterisk -r 

następnie wpisać:

core set verbose 5 

również wpisać:

show dialplan 

i sprawdzić, czy dialplan jest prawidłowo załadowany do gwiazdką

+0

Zmieniam swój plan wybierania tak, jak powiedziałeś. ale teraz dla numeru 9999 numer nie zawieszał się i wszystkie wywoływały tak samo jak numer 9999, przejdź do kroku w tle. – Rev

+0

dzięki, ale czy istnieje jakieś rozwiązanie, aby zobaczyć identyfikator rozmówcy dla połączeń przychodzących lub połączeń internetowych. Sprawdzam swoją bramę VoIP i widzę numer, i wpisuję ten numer w mój plan taryfowy. dzięki za uwagę – Rev

+0

NoOp ($ {CallerID (all)}) wyświetli identyfikator dzwoniącego na konsoli gwiazdki podczas wykonywania tego kroku. – Radu094

13

Oto twoja anty-była dziewczyna Dailp lan, zakładając xxxxx to numer ex-dziewczyny

exten => 123,1,GotoIf($[${CALLERID(num)} = xxxxx]?reject:allow) 
exten => 123,n(allow),Dial(Zap/4) 
exten => 123,n,Hangup() 
exten => 123,n(reject),Playback(abandon-all-hope) 
exten => 123,n,Hangup() 

Nadzieja to pomaga

+0

dziękuję, ale widzę moją edycję. twoje rozwiązanie nie działa – Rev

+2

W jaki sposób ta odpowiedź spowodowała tyle przebojów, jest poza mną. Cały czas widzę ten rodzaj dialplanu. Chłopaki, co się dzieje, gdy masz dwie były koleżanki? lub 50? Ile razy trzeba było przeskanować 1 pojedynczy numer. Najczęściej jest to lista numerów i lista prefiksów. GotoIf nie będzie działać. Użyj planszy telefonicznej zgodnie z przeznaczeniem lub przejdź do skryptu AGI, jeśli masz ochotę na programowanie. – Radu094

0

Przede wszystkim wydaje się, że tak naprawdę nie rozumieją, jak działa Asterisk dialplan. Blok kodu, który tam umieściłeś, jest po prostu błędny, asterysk nie będzie narzekał - ponieważ dialplan nie powinien tego robić.

Przeanalizujmy jeden po drugim:

[macro-queue] 
exten => s, 1, Queue(${ARG1}) 

[default] 
exten => s, 1, Answer 
exten => s/9999, 2 ,Hangup 
exten => s, 2, BackGround(welcome) 
exten => s, 3, Macro(queue,operator) 

Powodem powyższego jest nie tak jest ze względu na fakt, że nie można umieścić dopasowanie rozmówcy w jednej linii przedłużenia - to powinno być wszystko droga. Tak technicznie, musisz:

[macro-queue] 
exten => s, 1, Queue(${ARG1}) 

[default] 
exten => s/9999, 1, Answer 
exten => s/9999, 2 ,Hangup 
exten => s/9999, 2, BackGround(welcome) 
exten => s/9999, 3, Hangup 

exten => s, 1, Answer 
exten => s, 2 ,Hangup 
exten => s, 2, BackGround(welcome) 
exten => s, 3, Macro(queue,operator) 

teraz, że nie jest to właściwy sposób na osiągnięcie tego - po prostu dlatego, że będziesz replikacji linie kółko. Właściwy sposób prowadzenia jest bardzo podobna do poprzedniej odpowiedzi, jednak jest to, co chciałbym zrobić:

exten => s, 1, Answer 
exten => s, n, Gotoif($["${CALLERID(num)}" = "9999"]?reject:continue) 
exten => s, n(continue), Background(Welcome) 
exten => s, n, Macro(queue, operator) 
exten => s, n(reject), Hangup() 

Teraz można rozszerzyć różne numery rozmówcy, które chcesz zablokować. Ponownie, zakładając, że jest to wynik, który chciałeś osiągnąć.

0

To bardzo proste:

[default] 
    exten => s/9999,1,Hangup 

    exten => s,1,Answer 
    exten => s,2,BackGround(welcome) 
    exten => s,3,Macro(queue,operator) 
Powiązane problemy