Debian Etch + Asterisk 1.4 + HFC-S Card

[internal]
...
exten = 70,1,Goto(internal,*20*,1)
exten = 71,1,Goto(internal,*21*,1)
exten = 72,1,Goto(internal,*22*0017212345678,1)
...
Habe ich vorerst mal so eingebaut und werde ich jetzt mal testen.

bis auf die externe Weiterleitung schein es zu funktionieren...
 
frage: hast du das macro "diversion" wieder in den original-zustand versetzt?

nachdem du die ext. umleitung gesetzt hast, mach mal ein
Code:
*CLI> database show
da gibt es eine zeile, die mit "DIV/" + deiner durchwahl (callerid) des telefons, von dem aus die umleitung gesetzt wurde. rechts hast du den wert, der ist entweder:

1. leer -> keine umleitung gesetzt
2. "mailbox" -> umleitung auf mailbox gesetzt
3. eine telefonnummer -> umleitung auf diese telefonnummer gesetzt.

kannst du mal bitte diese zeile posten?

grüße,
laureen
 
ja macro ist wieder im "urzustand"

siehe hier:

[macro-diversion]
; *20* to delete diversions
; *21* to set diversion to "mailbox" or toggle
; *22*XX to set diversion to number XX

exten = s,1,NoOp(Macro diversion called for ${MACRO_EXTEN} by extension ${CALLERID(num)})
exten = s,n,NoCDR()
;exten = s,n,Set(PEERNAME=tel${CALLERID(num)})
exten = s,n,Set(PEERNAME=${CALLERID(num)})

exten = s,n,GotoIf($["${SIPPEER(${PEERNAME},context)}"!="internal"]?end)
exten = s,n,GotoIf($["${CUT(MACRO_EXTEN,*,2)}"="20"]?unset)
exten = s,n,GotoIf($["${CUT(MACRO_EXTEN,*,2)}"="21"]?mailbox)
exten = s,n,GotoIf($["${CUT(MACRO_EXTEN,*,2)}"="22"]?number)
exten = s,n,Goto(hangup)

exten = s,n(mailbox),GotoIf($["${DB(DIV/${CALLERID(num)})}"!=""]?unset)
exten = s,n,NoOp(Setting diversion for extension ${CALLERID(num)} to mailbox)
exten = s,n,Set(DB(DIV/${CALLERID(num)})=mailbox)
;exten = s,n,TrySystem(/var/lib/asterisk/agi-bin/setmessage.php "Umgeleitet zur Mailbox" "${PEERNAME}" &)
exten = s,n,Devstate(div${CALLERID(num)},2)
exten = s,n,Goto(end)

exten = s,n(number),Set(DIV_DEST=${MACRO_EXTEN:4})
exten = s,n,GotoIf($["${DIV_DEST}"=""]?hangup)
exten = s,n,NoOp(Setting diversion to ${DIV_DEST} for extension ${CALLERID(num)})
exten = s,n,Set(DB(DIV/${CALLERID(num)})=${DIV_DEST})
;exten = s,n,TrySystem(/var/lib/asterisk/agi-bin/setmessage.php "Umgeleitet zu ${DIV_DEST}" "${PEERNAME}" &)
exten = s,n,Devstate(div${CALLERID(num)},2)
exten = s,n,Goto(end)

exten = s,n(unset),NoOp(Un-Setting diversion for extension ${CALLERID(num)})
exten = s,n,Set(DB(DIV/${CALLERID(num)})="")
;exten = s,n,TrySystem(/var/lib/asterisk/agi-bin/setmessage.php "" "${PEERNAME}" &)
exten = s,n,Devstate(div${CALLERID(num)},1)
exten = s,n,Goto(end)

exten = s,n(end),Answer()
exten = s,n,Wait(0.5)
exten = s,n(hangup),Hangup()

show databas gibt mir diesen Eintrag:
(incl. richtiger Rufnummer!)
/div/13 : 003012345
 
und was gibt die asterisk aus, wenn du die durchwahl "13" anrufst oder im inbound ein "Goto(internal,13,1)" machst? wenn die umleitung auf die mailbox funktioniert, sollte das ja funktionieren.

es wird aber beim anruf der durchwahl "13" schon letztendlich das "stdexten" macro ausgeführt oder?

grüße,
laureen
 
wie kann ich diese einträge löschen ? (von show database) mir scheint, als würde das system deshalb ausser tritt geraten ? kann es sein, das ich probleme habe, weil die sippeers nicht alle tel10,tel11... usw. heissen, zb.21,22 ohne tel...?, da ich in de CLI sehe, das er eine selct anweisung nach tel21 macht als bsp., obwohl es nur noch eine 21 gibt ?

ansonsten muss ich gestehen, habe ich hier den überblick verloren... :(

konnte per 72 eine weiterleitung aktivieren, die ich jetzt aber nicht mehr verändert oder deaktiviert bekomme... ?!
 
[Jul 8 20:24:01] DEBUG[2398]: res_config_mysql.c:653 mysql_reconnect: MySQL RealTime: Everything is fine.
[Jul 8 20:24:01] DEBUG[2398]: res_config_mysql.c:140 realtime_mysql: MySQL RealTime: Retrieve SQL: SELECT * FROM ast_sipusers WHERE name = '36'
[Jul 8 20:24:01] DEBUG[2398]: res_config_mysql.c:653 mysql_reconnect: MySQL RealTime: Everything is fine.
[Jul 8 20:24:01] DEBUG[2398]: res_config_mysql.c:140 realtime_mysql: MySQL RealTime: Retrieve SQL: SELECT * FROM ast_sipusers WHERE name = '36'
-- Executing [72@internal:1] Goto("SIP/36-081fd580", "internal|*22*003012345678|1") in new stack
-- Goto (internal,*22*003012345678,1)
-- Executing [*22*003012345678@internal:1] Macro("SIP/36-081fd580", "diversion") in new stack
-- Executing [s@macro-diversion:1] NoOp("SIP/36-081fd580", "Macro diversion called for *22*003012345678 by extension 36") in new stack
[Jul 8 20:24:01] DEBUG[2422]: app_macro.c:337 _macro_exec: Executed application: NoOp
-- Executing [s@macro-diversion:2] NoCDR("SIP/36-081fd580", "") in new stack
[Jul 8 20:24:01] DEBUG[2422]: app_macro.c:337 _macro_exec: Executed application: NoCDR
-- Executing [s@macro-diversion:3] Set("SIP/36-081fd580", "PEERNAME=tel36") in new stack
[Jul 8 20:24:01] DEBUG[2422]: app_macro.c:337 _macro_exec: Executed application: Set
[Jul 8 20:24:01] DEBUG[2376]: res_config_mysql.c:653 mysql_reconnect: MySQL RealTime: Everything is fine.
[Jul 8 20:24:01] DEBUG[2376]: res_config_mysql.c:140 realtime_mysql: MySQL RealTime: Retrieve SQL: SELECT * FROM ast_sippeers WHERE name = '36-081fd580' AND host = 'dynamic'
[Jul 8 20:24:01] DEBUG[2376]: res_config_mysql.c:653 mysql_reconnect: MySQL RealTime: Everything is fine.
[Jul 8 20:24:01] DEBUG[2376]: res_config_mysql.c:140 realtime_mysql: MySQL RealTime: Retrieve SQL: SELECT * FROM ast_sippeers WHERE name = '36-081fd580'
[Jul 8 20:24:01] DEBUG[2422]: res_config_mysql.c:653 mysql_reconnect: MySQL RealTime: Everything is fine.
[Jul 8 20:24:01] DEBUG[2422]: res_config_mysql.c:140 realtime_mysql: MySQL RealTime: Retrieve SQL: SELECT * FROM ast_sippeers WHERE name = 'tel36' AND host = 'dynamic'
[Jul 8 20:24:01] DEBUG[2422]: res_config_mysql.c:653 mysql_reconnect: MySQL RealTime: Everything is fine.
[Jul 8 20:24:01] DEBUG[2422]: res_config_mysql.c:140 realtime_mysql: MySQL RealTime: Retrieve SQL: SELECT * FROM ast_sippeers WHERE name = 'tel36'
-- Executing [s@macro-diversion:4] GotoIf("SIP/36-081fd580", "1?end") in new stack
-- Goto (macro-diversion,s,24)
[Jul 8 20:24:01] DEBUG[2422]: app_macro.c:337 _macro_exec: Executed application: GotoIf
-- Executing [s@macro-diversion:24] Answer("SIP/36-081fd580", "") in new stack
[Jul 8 20:24:01] DEBUG[2422]: app_macro.c:337 _macro_exec: Executed application: Answer
-- Executing [s@macro-diversion:25] Wait("SIP/36-081fd580", "0.5") in new stack
[Jul 8 20:24:01] DEBUG[2376]: res_config_mysql.c:653 mysql_reconnect: MySQL RealTime: Everything is fine.
[Jul 8 20:24:01] DEBUG[2376]: res_config_mysql.c:140 realtime_mysql: MySQL RealTime: Retrieve SQL: SELECT * FROM ast_sippeers WHERE name = '36-081fd580' AND host = 'dynamic'
[Jul 8 20:24:01] DEBUG[2376]: res_config_mysql.c:653 mysql_reconnect: MySQL RealTime: Everything is fine.
[Jul 8 20:24:01] DEBUG[2376]: res_config_mysql.c:140 realtime_mysql: MySQL RealTime: Retrieve SQL: SELECT * FROM ast_sippeers WHERE name = '36-081fd580'
[Jul 8 20:24:01] DEBUG[2422]: app_macro.c:337 _macro_exec: Executed application: Wait
-- Executing [s@macro-diversion:26] Hangup("SIP/36-081fd580", "") in new stack
== Spawn extension (macro-diversion, s, 26) exited non-zero on 'SIP/36-081fd580' in macro 'diversion'
== Spawn extension (macro-diversion, s, 26) exited non-zero on 'SIP/36-081fd580'
[Jul 8 20:24:01] DEBUG[2376]: res_config_mysql.c:653 mysql_reconnect: MySQL RealTime: Everything is fine.
[Jul 8 20:24:01] DEBUG[2376]: res_config_mysql.c:140 realtime_mysql: MySQL RealTime: Retrieve SQL: SELECT * FROM ast_sippeers WHERE name = '36-081fd580' AND host = 'dynamic'
[Jul 8 20:24:01] DEBUG[2376]: res_config_mysql.c:653 mysql_reconnect: MySQL RealTime: Everything is fine.
[Jul 8 20:24:01] DEBUG[2376]: res_config_mysql.c:140 realtime_mysql: MySQL RealTime: Retrieve SQL: SELECT * FROM ast_sippeers WHERE name = '36-081fd580'
voipsrv*CLI>

das ist eine Ausgabe, wenn ich von einem Telefon die 72 anrufe (weiterleitung)
 
scheint daran zu liegen, das ich die usernamen nicht mit "telXX" XX nebenstellennr benannt habe...
 
das ist es, kannst du deinen peers einen einheitlichen prefix geben, also z.b. "telefon" oder "phone" und das in der zeile 8 des macros "diversion" richtigstellen, wenn dir "tel" nicht gefällt? (nach änderungen in der tabelle "ast_sippeers" bitte immer dialplan reloaden!)

ich suche nach einer lösung, das sauber mit beliebigen prefixes zu lösen, gebe dir bescheid, wenn ich etwas gefunden habe.

grüße,
laureen
 
und schon gefunden, ändere mal die folgende zeile im "/etc/asterisk/include/macro-diversion.conf" von
Code:
...
exten = s,n,Set(PEERNAME=tel${CALLERID(num)})
...
auf
Code:
...
exten = s,n,Set(PEERNAME=${SIPCHANINFO(peername)})
...
und berichte!

grüße,
laureen
 
hallo ;)

also die Stelle hatt ich schon gesehen, jetzt aber alles wieder in tel1--- geändert... ;)
Funktioniert soweit auch gut (aber nur mit deiner Hilfe! THANX!) :) habe noch Probleme mit dem extensions reload... und co gehabt... :)

Die Verzögerung der Mailbox "COMPANY_MAILBOX=10" kann ich damit regeln ? (habe sonst keine Info gefunden ?) da diese mir zu schnell anspringt... ?

Habe jetzt mal eine Ansage auf einer Mailbox eingerichtet, jedoch kommt immer meine Ansage UND die vom *... der Parameter ... -s für "silent" hat nicht funktioniert... ist das gewollt... ?! ;)

So .. aber geniesse Du jetzt auch mal dein WE

Gruß Dennis
 
"COMPANY_MAILBOX=10" hat nix mit verzögerungen zu tun, das ist der name der mailbox, auf die geschaltet wird, wenn die vermittlung (queue) nicht rangeht.

wo funktioniert die option "s" nicht? im macro "stdexten"? in welcher zeile?

grüße,
laureen
 
wg. mailboxverzögerung: dann bin ich voll auf dem falschen dampfer... :(

wg. "silent" müsste Zeile 18 gewesen sein, hatte ich aber wieder entfernt...
 
du kannst 2 ansagen über das asterisk-eigene voicemail-system aufsprechen:

1. eine ansage bei unerreichbarkeit (wenn du nicht abhebst oder das telefon nicht registriert ist)

2. eine ansage, wenn du sprichst

das voicemail system kannst du mit "8" und der durchwahl erreichen.

du kannst die art der nachricht auch "erzwingen", indem du "u" für die 1. ansage oder "b" für die 2. ansage angibst:
Code:
...
exten = s,n,VoiceMail(${MACRO_EXTEN},u)
...
oder
Code:
...
exten = s,n,VoiceMail(${MACRO_EXTEN},b)
...

oder du kannst sämtliche ansagen mit der option "s" unterdrücken, wenn du z.b. eine sounddatei mittels "Playback" vorher abspielst:
Code:
...
exten = s,n,VoiceMail(${MACRO_EXTEN},s)
...

grüße,
laureen
 
ich werds mir noch einmal ansehen... habe hier eine "menge" Lektüre vor mir... ;)


Gruß Dennis

PS: Ich meld mich dann später nochmal ;)
 
Hi,
nachdem ich nun nach meinem Urlaub wieder mit dem* beschäftigen kann, muss ich noch einmal fragen, wie ich die Mailbox deaktiviere (auch bei nichterreichbarkeit (unavailable und oder busy...)

Also ich steig da einfach nicht durch... * läuft soweit, auch mit entsprchenden Ansagen, aber ich schaffe es einfach nicht, die Voicemail komplett zu deaktivieren, wenn ich nach 15 sekunden nicht am Telefon bin... ?!

Würde mich über einen Tip freuen, wenn du mir die Richtung vorgeben könntest...
Danke und Gruß DD
 
willkommen zurück!

warum kommentierst du die zeile mit "Voicemail(..." nicht einfach aus?

[EDIT]
die zeile findest du im macro stdexten in der datei "/etc/asterisk/include/macro-stdexten.conf", übrigens auch das 15 sekunden timeout ist dort...
[/EDIT]

grüße,
laureen
 
Zuletzt bearbeitet:
Einen wunderschönen GUTEN MORGEN ;)

Also ich habe wohl den Wald vor lauter Bäumen nicht gesehen, sofern
diese Zeile richtig ist...
Code:
;exten = s,n,Dial(SIP/${DIALPEER},15,${GLOBAL(DIAL_OPTIONS)})
exten = s,n,Dial(SIP/${DIALPEER},120,${GLOBAL(DIAL_OPTIONS)})
Ich habe diese jetzt auf 120 sekunden gesetzt, so dass ich doch eigentlich den part "Voicemail" nicht mehr deaktivieren müsste ?

Code:
exten = s,n(mailbox),Answer()
exten = s,n,Wait(1)
 ------>>>>>>   exten = s,n,VoiceMail(${MACRO_EXTEN},u)
oder wie verhält sich das ganze, wenn auf einer Nummer gesprochen wird und ein 2ter Anruf kommt... ?! (Dieser soll nicht "Anklopfen", sondern "besetzt" bekommen...

Gruß DD
 
Einen wunderschönen GUTEN MORGEN ;)

Also ich habe wohl den Wald vor lauter Bäumen nicht gesehen, sofern
diese Zeile richtig ist...
Code:
;exten = s,n,Dial(SIP/${DIALPEER},15,${GLOBAL(DIAL_OPTIONS)})
exten = s,n,Dial(SIP/${DIALPEER},120,${GLOBAL(DIAL_OPTIONS)})
Ich habe diese jetzt auf 120 sekunden gesetzt, so dass ich doch eigentlich den part "Voicemail" nicht mehr deaktivieren müsste ?
gorreggt!

Code:
exten = s,n(mailbox),Answer()
exten = s,n,Wait(1)
 ------>>>>>>   exten = s,n,VoiceMail(${MACRO_EXTEN},u)
oder wie verhält sich das ganze, wenn auf einer Nummer gesprochen wird und ein 2ter Anruf kommt... ?! (Dieser soll nicht "Anklopfen", sondern "besetzt" bekommen...

da gibt es 2 möglichkeiten:
- du stellst das auf deinem telefon ein
- du setzt das db-feld "call-limit" in der tabelle ast_sippeers auf "1", was aber dazu führt, dass du keine anrufe mehr weiterverbinden kannst, das wären dann nämlich 2 anrufe: der reinkommende und der, zu dem du verbinden willst

sag mal, hast du eine eigene internet-domain, bei der du zugriff auf das dns hast? wäre interessant, damit du auch über sip erreichbar sein könntest! das wäre der letzte punkt, den ich dir noch zeigen wollte.

grüße,
laureen
 
- du stellst das auf deinem telefon ein

geht nicht, dad ATA... (oder doch ?) ;)

- du setzt das db-feld "call-limit" in der tabelle ast_sippeers auf "1", was aber dazu führt, dass du keine anrufe mehr weiterverbinden kannst, das wären dann nämlich 2 anrufe: der reinkommende und der, zu dem du verbinden willst
ginge dann auch keine Weiterleitung per *22 ... ? oder "nur" die man weiterleitung (die funktioniert' z.zt. sowieso nicht...

können dann trotzdem "mehrere" MSN gleichzeitig angerufen werden ? d.h. ein externer Anrufer mit MSN 1 und ein Telefonat von Intern nach extern ?...


habe diesen "fetzen" im forum gefunden...
exten _xyz,1,Dial,SIP/Apparat1|30|r
exten _xyz,2,Goto,r-${DIALSTATUS}|1

exten r-BUSY,1,Dial,SIP/Apparat2|30|r
exten r-BUSY,2,Hangup

exten r-ANSWER,1,Hangup

ich verstehe das so...

Anruf erfolgt, * versucht Apparat1 30 Sekunden lang zu erreichen bzw. überprüft ob besetzt", wenn ja versucht direkt Apparat2


sag mal, hast du eine eigene internet-domain, bei der du zugriff auf das dns hast? wäre interessant, damit du auch über sip erreichbar sein könntest! das wäre der letzte punkt, den ich dir noch zeigen wollte.
ja ;) habe auf alle domains von mir nameserver zugriff... ;)
 
Aus einem anderen Beitrag hier im Forum...

exten => s,1,Ringing()
exten => s,2,Wait(5)
exten => s,3,AGI(callback.sh)
exten => s,4,Set(PRI_CAUSE=1)
exten => s,5,Hangup()

Ertönt beim Anrufer 5 Sek lang der Ringtone und dann nach kommt eine Ansage von Vodafone: "Die gewählte Nummer ist nicht vergeben" und T-Com meint "Kein Anschluss unter dieser Nummer".

Das finde ich irgendwie lustig, dass man so eine Ansage provozieren kann

Mit PRI_CAUSE=21 wird der Anruf abgwiesen. Das klappt super.

Gruß Fabian


bedeutet das für mich, wenn ich Set(PRI_CAUSE=1) verwende und die nummer besetzt ist, ein "echtes" besetzt erzeugen kann ? das wäre dann doch eine saubere Lösung... ?!
 
Kostenlos!

Statistik des Forums

Themen
249,052
Beiträge
2,309,532
Mitglieder
378,850
Neuestes Mitglied
IchBinEsDoch