- Mitglied seit
- 5 Dez 2005
- Beiträge
- 1,844
- Punkte für Reaktionen
- 0
- Punkte
- 36
[HOWTO] Asterisk 1.2.x mit dem Snom-Pickup-Patch patchen
-- Diskussion findet hier statt -- bt
x
Dieses Howto ist ein Erfahrungsbericht und erhebt keinen Anspruch auf Vollständigkeit !
Es richtet sich an Leute die :
--> SNOM Telefone haben
--> ASTERISK 1.2.x nutzen
--> und die Zielwahltasten bei einem KLINGELN an einem anderen Apparat (und blinken am eigenen)
zum annehmen nutzen möchten.
--> mit dem BRIstuff Teil auch Tasten manuell einen Status zuweisen möchten
--> sich an die Versionen hier im Howto halten können, abweichende stellen desöfteren Probleme dar.
Dieses Howto ist auf der Idee von tomster gewachsen - welchem der Dank gebührt !
Dieser Pickup - Patch - Thread ist ursprünglich nur mit mgernoth´s Patch geschrieben worden.
Seit dem sich Jacky0815 dem Bristuff Patch angenommen hat können wir auch diesen mit einspielen
und somit auch "x-beliebige" Nebenstellentasten manuell zum leuchten bringen (mehr dazu hier) .
Ob man nun beide gleichzeitig installieren kann ist eine gute Frage,
sollte aber eigentlich keine Probleme bereiten, im Zweifel immer erst testen oder hier nachsehen !
Dieser Thread ist in den kurzen Teil des BRI Patches und den großen des Gernoth Teils aufgesplittet, der BRI soll nur zeigen was man nun noch zusätzlich machen kann, die Anleitung an sich ist im Gernoth Teil untergebracht.
Also vorweg ...
BRIstuff TEIL(optional!) (ohne vorhandensein von BRIstuff nutzbar! Bis Dato : NICHT mit mISDN)
Wer hier Zweifel hat der lese bitte erst den GERNOTH Teil, dort ist auch die ANLEITUNG!
1. Den Patch downloaden : Link oder Mirror (Textdatei mit "Ziel speichern unter..." oder wget laden!)
2. Den Patch einspielen - ins Asterisk Source wechseln und mit "patch -p1 < devstate.diff" einspielen.
Das ganze sieht dann (erfolgreich) ungefähr so aus :
3. Asterisk kompilieren (oder erst den Gernoth Teil abarbeiten)
4. Die Konfigurationen erstellen
a) Wir erstellen eine "virtuelle Nebenstelle "Nachtschaltung""
-> extensions.conf öffnen
-> Die folgenden Zeilen zeigen eine Nebenstelle mit dem Gerätenamen "DS/1234" (DS=DeviceState, kann aber auch xyz heissen)
-> In den Snoms ist eine Funktionstaste als !!Nebenstelle!! mit zB "1234" zu belegen, diese wird dann angezeigt.
5. Fertig.
Und nun der eigentliche Teil des Pickup-Patches...
GERNOTH TEIL
Geupdated auf die neue Pickup-Patch-Datei von Michael Gernoth.
Los geht´s ....
1. Den Patch downloaden (geupdated nach Fehlerhaftigkeit bei der Signalisierung am 08.10.2006)
Der neue Patch an sich : Link
mit "Ziel speichern unter..." oder wget laden - da es eine Textdatei ist!
The whole story (Digiums Bugtracker) : DIGIUMs "Pickup-Patch" BUG #5014#
2. Sichern
Das Original Asterisk sicherheitshalber einmal "wegspeichern" um den Patch
bei misslingen ohne Probleme wieder herauszuholen.
Das macht man im übergeordneten Ordner von Source-* so :
Asterisk:/usr/src# cp -r asterisk asterisk-original
3. Patchen
Das downgeloadete File in ein Verzeichnis seiner Wahl verschieben, in den Ordner
des Original-Asterisk wechseln (bei mir usr/src/asterisk) und dann
"patch -p0 < <dateiname>" eingeben.
Das sieht dann (idealerweise) so aus :
Asterisk:/usr/src/asterisk# patch -p0 < <dateiname>
patching file channels/chan_sip.c
Hunk #5 succeeded at 4978 (offset 13 lines).
Hunk #6 succeeded at 5112 (offset 13 lines).
Hunk #7 succeeded at 6645 (offset 13 lines).
Hunk #8 succeeded at 6701 (offset 13 lines).
Hunk #9 succeeded at 6746 (offset 13 lines).
Hunk #10 succeeded at 6755 (offset 13 lines).
Hunk #11 succeeded at 6793 (offset 13 lines).
Hunk #12 succeeded at 7085 (offset 13 lines).
Hunk #13 succeeded at 8658 (offset 13 lines).
Hunk #14 succeeded at 8742 (offset 13 lines).
Hunk #15 succeeded at 10243 (offset 17 lines).
Hunk #16 succeeded at 10309 (offset 17 lines).
Hunk #17 succeeded at 10332 (offset 17 lines).
Hunk #18 succeeded at 10440 (offset 17 lines).
Hunk #19 succeeded at 10467 (offset 17 lines).
Hunk #20 succeeded at 11182 (offset 25 lines).
Achtung !
Dabei sollten keine größeren Fehlermeldungen kommen.
Kommt etwas wie "****Only garbage was found in the patch input",
dann ist das downgeloadete File korrupt.
Bei Problemen ist hier Digiums-Anleitung zum Patchen
4a. Einstellungen in der EXTENSIONS.CONF
Ich verwende die Nebenstellen 10-19 und es schaut dann so aus
(Geht bestimmt auch elogantöser, aber mir langt's so):
4b. Einstellungen in der SIP.CONF
Ein Beispiel
5. Telefone einstellen:
Um nun auch an den Snom-Phones eine entsprechende Anzeige zu bekommen,
muss man eigentlich nicht viel machen, ausser die Funktionstasten entsprechen zu belegen.
Das Einfachste ist aus dem Drop-Down-Menü "Ziel" auszuwählen
(Nicht auf "Leitung" stehen lassen!!) und im Feld dahinter die
entsprechende Nebenstelle (z.B. 10) einzutragen.
Wenn man auf [Speichern] klickt macht das Telefon automatisch den rchtigen Eintrag daraus:
<sip:10@registrar;user=phone>
UPDATE für FW-Version 6.2.2
Es reicht nicht mehr aus die Nebenstelle einfach nur "10" anzugeben, es muss darauf geachtet werden das
der Eintrag 10@SERVER-IP heisst !
Ein Restart von Asterisk und vorallem ein REBOOT der Telefone schliesst die Sache ab.
Fertig, Digiums Patch ist eingespielt.
Erfahrungen
Nach jedem Reload von Asterisk ist es auch notwendig entweder die Telefone zu rebooten
(via sip-notify reboot-snom (siehe weiter unten)) oder den Umstand in Kauf zu nehmen bis dies
automatisch durch die eingestellte Refreshzeit geschieht - bis dahin fehlen die Subscr. .
Es ist generell empfehlenswert Asterisk nach einem Neustart per Skript einen Befehl mit auf den Weg
zu geben um die Telefone neu zu booten (und in meinem Fall die verbose/debugs auf "1" zu setzen um meine autom. Logs kontrolliert zu füllen...
(Das ganze hier in /etc/init.d packen, mit Rechten versehen und einen Link in /etc/rc2.d setzen, Fertig.)
Zum 3ten Teil des HOWTOs :
6. Einbinden von halbautomatischen Reboots für SNOMs
Erstellt eine neue Datei im *-Config-Verzeichnis (z.B. etc/asterisk) namens sip_notify.conf mit folgendem Inhalt:
;Snom-Reboot
[reboot-snom]
Event=>reboot
content-Length=>0
Nach einem Reload sollte dann auch diese Datei mitgeparst werden. Danach kann man mit dem Befehl im CLI
sip notify reboot-snom 10
das Telefon "10" (oder beliebiger anderer SIP-Context) rebooten.
Wenn ihr mehrere Telefone gleichzeitig rebooten wollt, dann einfach z.B.
sip notify reboot-snom 10 11 12
Damit werden dann alle 3 Telefone gleichzeitig rebootet. Wie gesagt: wie ein Reboot-all funzt, ohne manuell alle Telefone in ein Conf-File zu schreiben weiss ich noch nicht, muss aber sicher irgendwie möglich sein.
Wichtige Anmerkung
Bitte die Funktion, mehrere SNOMs gleichzeitig zu resetten, vorsichtig benutzen!
Das sollte man nicht im Produktivbetrieb machen, es ist zwar hier bei mir noch nie passiert, jedoch
könnte das Asterisk zum Hängenbleiben veranlassen!
Fertig, Eure Snoms sind nun bestens vorbereitet und sollten mit gut überlegten FW Updates gut laufen.
Beachtet den Hinweis --> Update auf FW 6.2.2 weiter oben !
Hilfreiche Links :
=> Diskussion aus dem Forum "SNOM 360 LEDs BLINKEN NICHT"
=> Älterer Thread zur Pickup-Patch Problematik ("Mehrfachlösung")
=> Probleme mit Asterisk >1.2.13 und dem PickupPatch :
==> LOCAL-Lösung und der dazugehörige LOCAL-Thread
Fragen ? Anregungen ? Gefundene Fehler ? BITTE antwortet im Diskussions-Thread ! Danke.
Mit besten Grüßen,
Stefan bzw. Hobby(*)stern
-- Diskussion findet hier statt -- bt
x
Dieses Howto ist ein Erfahrungsbericht und erhebt keinen Anspruch auf Vollständigkeit !
Es richtet sich an Leute die :
--> SNOM Telefone haben
--> ASTERISK 1.2.x nutzen
--> und die Zielwahltasten bei einem KLINGELN an einem anderen Apparat (und blinken am eigenen)
zum annehmen nutzen möchten.
--> mit dem BRIstuff Teil auch Tasten manuell einen Status zuweisen möchten
--> sich an die Versionen hier im Howto halten können, abweichende stellen desöfteren Probleme dar.
Dieses Howto ist auf der Idee von tomster gewachsen - welchem der Dank gebührt !
Dieser Pickup - Patch - Thread ist ursprünglich nur mit mgernoth´s Patch geschrieben worden.
Seit dem sich Jacky0815 dem Bristuff Patch angenommen hat können wir auch diesen mit einspielen
und somit auch "x-beliebige" Nebenstellentasten manuell zum leuchten bringen (mehr dazu hier) .
Ob man nun beide gleichzeitig installieren kann ist eine gute Frage,
sollte aber eigentlich keine Probleme bereiten, im Zweifel immer erst testen oder hier nachsehen !
Dieser Thread ist in den kurzen Teil des BRI Patches und den großen des Gernoth Teils aufgesplittet, der BRI soll nur zeigen was man nun noch zusätzlich machen kann, die Anleitung an sich ist im Gernoth Teil untergebracht.
Also vorweg ...
BRIstuff TEIL(optional!) (ohne vorhandensein von BRIstuff nutzbar! Bis Dato : NICHT mit mISDN)
Wer hier Zweifel hat der lese bitte erst den GERNOTH Teil, dort ist auch die ANLEITUNG!
1. Den Patch downloaden : Link oder Mirror (Textdatei mit "Ziel speichern unter..." oder wget laden!)
2. Den Patch einspielen - ins Asterisk Source wechseln und mit "patch -p1 < devstate.diff" einspielen.
Das ganze sieht dann (erfolgreich) ungefähr so aus :
Code:
patching file apps/app_devstate.c
patching file apps/Makefile
Hunk #1 succeeded at 29 with fuzz 2.
4. Die Konfigurationen erstellen
a) Wir erstellen eine "virtuelle Nebenstelle "Nachtschaltung""
-> extensions.conf öffnen
-> Die folgenden Zeilen zeigen eine Nebenstelle mit dem Gerätenamen "DS/1234" (DS=DeviceState, kann aber auch xyz heissen)
Code:
[FONT=monospace]exten => 1234,hint,DS/1234 ; Der HINT Eintrag fuer die Fake-Nebenstelle[/FONT]
[FONT=monospace]exten => 1234,1,DevState(100,2) ; Der Status - 1 - wartend , 2 - in Benutzung , 3 - Besetzt..[/FONT]
[FONT=monospace]exten => 1234,2,DoSomeThingGood ; Hier darf nun irgendwas passieren...oder auch nix[/FONT]
[FONT=monospace]exten => 1234,3,DevState(100,0) ; LED wieder aus und Hangup
exten => 1234,4,Hangup()
[/FONT]
5. Fertig.
Und nun der eigentliche Teil des Pickup-Patches...
GERNOTH TEIL
Geupdated auf die neue Pickup-Patch-Datei von Michael Gernoth.
Los geht´s ....
1. Den Patch downloaden (geupdated nach Fehlerhaftigkeit bei der Signalisierung am 08.10.2006)
Der neue Patch an sich : Link
mit "Ziel speichern unter..." oder wget laden - da es eine Textdatei ist!
The whole story (Digiums Bugtracker) : DIGIUMs "Pickup-Patch" BUG #5014#
2. Sichern
Das Original Asterisk sicherheitshalber einmal "wegspeichern" um den Patch
bei misslingen ohne Probleme wieder herauszuholen.
Das macht man im übergeordneten Ordner von Source-* so :
Asterisk:/usr/src# cp -r asterisk asterisk-original
3. Patchen
Das downgeloadete File in ein Verzeichnis seiner Wahl verschieben, in den Ordner
des Original-Asterisk wechseln (bei mir usr/src/asterisk) und dann
"patch -p0 < <dateiname>" eingeben.
Das sieht dann (idealerweise) so aus :
Asterisk:/usr/src/asterisk# patch -p0 < <dateiname>
patching file channels/chan_sip.c
Hunk #5 succeeded at 4978 (offset 13 lines).
Hunk #6 succeeded at 5112 (offset 13 lines).
Hunk #7 succeeded at 6645 (offset 13 lines).
Hunk #8 succeeded at 6701 (offset 13 lines).
Hunk #9 succeeded at 6746 (offset 13 lines).
Hunk #10 succeeded at 6755 (offset 13 lines).
Hunk #11 succeeded at 6793 (offset 13 lines).
Hunk #12 succeeded at 7085 (offset 13 lines).
Hunk #13 succeeded at 8658 (offset 13 lines).
Hunk #14 succeeded at 8742 (offset 13 lines).
Hunk #15 succeeded at 10243 (offset 17 lines).
Hunk #16 succeeded at 10309 (offset 17 lines).
Hunk #17 succeeded at 10332 (offset 17 lines).
Hunk #18 succeeded at 10440 (offset 17 lines).
Hunk #19 succeeded at 10467 (offset 17 lines).
Hunk #20 succeeded at 11182 (offset 25 lines).
Achtung !
Dabei sollten keine größeren Fehlermeldungen kommen.
Kommt etwas wie "****Only garbage was found in the patch input",
dann ist das downgeloadete File korrupt.
Bei Problemen ist hier Digiums-Anleitung zum Patchen
4a. Einstellungen in der EXTENSIONS.CONF
Code:
exten => [SIP-Nebenstelle],1,[B]hint[/B],SIP/[SIP-Nebenstelle]
(Geht bestimmt auch elogantöser, aber mir langt's so):
Code:
[hints]
exten => 10,hint,SIP/10
exten => 11,hint,SIP/11
exten => 12,hint,SIP/12
exten => 13,hint,SIP/13
exten => 14,hint,SIP/14
exten => 15,hint,SIP/15
exten => 16,hint,SIP/16
exten => 17,hint,SIP/17
exten => 18,hint,SIP/18
exten => 19,hint,SIP/19
...
[default]
include => hints
Ein Beispiel
Code:
[10]
type=friend
host=dynamic
defaultip=192.1.2.3
username=10
secret=psst_geheim
dtmfmode=rfc2833
mailbox=10
callerid=Max Mustermann <10>
subscribecontext=default
notifyringing=yes
useclientcode=yes
Um nun auch an den Snom-Phones eine entsprechende Anzeige zu bekommen,
muss man eigentlich nicht viel machen, ausser die Funktionstasten entsprechen zu belegen.
Das Einfachste ist aus dem Drop-Down-Menü "Ziel" auszuwählen
(Nicht auf "Leitung" stehen lassen!!) und im Feld dahinter die
entsprechende Nebenstelle (z.B. 10) einzutragen.
Wenn man auf [Speichern] klickt macht das Telefon automatisch den rchtigen Eintrag daraus:
<sip:10@registrar;user=phone>
UPDATE für FW-Version 6.2.2
Es reicht nicht mehr aus die Nebenstelle einfach nur "10" anzugeben, es muss darauf geachtet werden das
der Eintrag 10@SERVER-IP heisst !
Code:
Release Notes der FW 6.2.2
fixed subscriptions on Reboot, Line Active/Inactive and Re-register
Fertig, Digiums Patch ist eingespielt.
Erfahrungen
Nach jedem Reload von Asterisk ist es auch notwendig entweder die Telefone zu rebooten
(via sip-notify reboot-snom (siehe weiter unten)) oder den Umstand in Kauf zu nehmen bis dies
automatisch durch die eingestellte Refreshzeit geschieht - bis dahin fehlen die Subscr. .
Es ist generell empfehlenswert Asterisk nach einem Neustart per Skript einen Befehl mit auf den Weg
zu geben um die Telefone neu zu booten (und in meinem Fall die verbose/debugs auf "1" zu setzen um meine autom. Logs kontrolliert zu füllen...
Code:
# Asterisk Skript startet...
/usr/sbin/asterisk
# Asterisk up, warte 3 Sek. auf Initialisierung
sleep 3
/usr/sbin/asterisk -rx "set verbose 1"
/usr/sbin/asterisk -rx "set debug 1"
# Starte alle SNOM Telefone neu...
/usr/sbin/asterisk -rx "sip notify reboot-snom 10 20 30 40 44 50 70 75"
Zum 3ten Teil des HOWTOs :
6. Einbinden von halbautomatischen Reboots für SNOMs
Erstellt eine neue Datei im *-Config-Verzeichnis (z.B. etc/asterisk) namens sip_notify.conf mit folgendem Inhalt:
;Snom-Reboot
[reboot-snom]
Event=>reboot
content-Length=>0
Nach einem Reload sollte dann auch diese Datei mitgeparst werden. Danach kann man mit dem Befehl im CLI
sip notify reboot-snom 10
das Telefon "10" (oder beliebiger anderer SIP-Context) rebooten.
Wenn ihr mehrere Telefone gleichzeitig rebooten wollt, dann einfach z.B.
sip notify reboot-snom 10 11 12
Damit werden dann alle 3 Telefone gleichzeitig rebootet. Wie gesagt: wie ein Reboot-all funzt, ohne manuell alle Telefone in ein Conf-File zu schreiben weiss ich noch nicht, muss aber sicher irgendwie möglich sein.
Wichtige Anmerkung
Bitte die Funktion, mehrere SNOMs gleichzeitig zu resetten, vorsichtig benutzen!
Das sollte man nicht im Produktivbetrieb machen, es ist zwar hier bei mir noch nie passiert, jedoch
könnte das Asterisk zum Hängenbleiben veranlassen!
Fertig, Eure Snoms sind nun bestens vorbereitet und sollten mit gut überlegten FW Updates gut laufen.
Beachtet den Hinweis --> Update auf FW 6.2.2 weiter oben !
Hilfreiche Links :
=> Diskussion aus dem Forum "SNOM 360 LEDs BLINKEN NICHT"
=> Älterer Thread zur Pickup-Patch Problematik ("Mehrfachlösung")
=> Probleme mit Asterisk >1.2.13 und dem PickupPatch :
==> LOCAL-Lösung und der dazugehörige LOCAL-Thread
Fragen ? Anregungen ? Gefundene Fehler ? BITTE antwortet im Diskussions-Thread ! Danke.
Mit besten Grüßen,
Stefan bzw. Hobby(*)stern
Zuletzt bearbeitet: