[Diskussion] [HOWTO] Asterisk mit dem Snom-Pickup-Patch patchen

Zuletzt bearbeitet:
Wenn ihr hier so weiter macht, schreibe ich doch noch mal eine Anleitung...
 
Hallo,

ich verwende Asterisk 1.4.18 (gepatched mit Codec Negotiation und G.722) auf einem iMac mit zwei Snom Telefonen (320 und 370). Als Gateway in das ISDN-Netz dient mein Lancom 1823. Das funktioniert auch alles einwandfrei. Den Patch für das Pickup würde ich auch gerne verwenden. Ich habe zwar schon einige Threads gelesen, aber noch kein File gefunden, mit dem ich meine Version (fehlerfrei) patchen kann. Hat hier jemand einen Tipp für mich?

Gruß
Werner
 
Hallo Leute,

es gibt Neuigkeiten!

Da es mir tierisch auf den Sa** ging, dass unter Asterisk 1.4 die ganze Call-Pickup Geschichte nicht so richtig funktioniert, hab ich mich heute mal hingesetzt und selbst einen Patch gebastelt. Der Patch basiert auch wie die 1.2er Gernoth Version auf dem "Channel Walk", kann daher (laut Digium) etwas CPU intensiver bei vielen Kanälen werden. Um dem ganzen vorzubeugen, wurde eine neue Konfigurationsvariable eingeführt um den Patch zu deaktivieren. Dazu nachher mehr... Es wird jedoch nicht wie bei Gernoth auf den "replaces Header" zurückgegriffen sondern, die neue Möglichkeit mit der "Remote Target URI" genutzt.
Daher wird im Dialplan eine App benötigt, um den Pickup durchzuführen. Da die bei * mitgelieferte APP sich auf den Context bezieht, kann zumindest ich damit nichts anfangen. Also wurde aus dem Bristuff die "PickupChan" App herausgetrennt und in den Patch integriert.

Den Patch gibts unter http://www.net-performer.de/asterisk/asterisk-1.4.21-pickup.patch für Asterisk 1.4.21
Da hier ein Teil aus dem Bristuff integriert ist, wird der Patch nicht sauber gegen einen gepatchten Asterisk durchlaufen!! Leute mit Bristuff benötigen den Patch wohl eh nicht!?

Für die Gentoo Fans unter uns, hier ein fertiges Ebuild für Asterisk 1.4.21 mit Patch: http://www.net-performer.de/asterisk/asterisk-ebuilds.tgz

Um die Sache mit dem "Channel Walk" zu umgehen, wurde eine neue globale Variable eingeführt: sendcallinfo
Ist diese und notifyringing aktiviert, werden die benötigten Informationen für den Pickup zu dem Snom Telefon gesendet. Dabei wird auch der "CPU intensive" Walk ausgeführt. Also im embedded Bereich evtl. aufpassen...

Um das ganze gangbar zu machen, werden die bekannten Einstellungen für Asterisk 1.4 benötigt.

sip.conf
Code:
#per Peer oder global
call-limit = 2

#zusätzlich in den globalen Einstellungen:
sendcallinfo = yes
notifyringing = yes

Die sip.conf.sample wird übrigens gepatched um auch dort die Variable mit Beschreibung zu finden.

Damit der Pickup auch funktioniert, muss im Dialplan die App PickupChan aufgerufen werden. Falls nur mit SIP Telefonen gearbeitet wird und man nicht mit direktem Amt arbeitet, sollte folgende Zeile den Job im Context der Telefone erledigen:
Code:
exten => _*8.,1,PickupChan(SIP/${EXTEN:2})

Auf den Telefonen sollte Firmware 7.1.33 laufen. Für die Funktionstasten weiterhin "Nebenstelle" auswählen.

Der Patch wurde noch nicht intensiv getestet und es ist daher nicht empfohlen, den Patch schon produktiv einzusetzen.

In den nächsten Tagen kommen noch einige kleine Änderungen. Bei mir funktioniert er momentan jedenfalls auch noch nach einigen Tests...

Jetzt wünsche ich mal viel Spaß damit und vor allem mal vielen Dank an das SNOM Team für die (längst überfällige) Dokumentation der Pickup Features. Danke auch an kpj. Ohne seine App gehts ja momentan nicht...

Weitere Tipps/Anregungen sofort :) Posten... Bei Fehlern auch, aber dann bitte mit anständiger Beschreibung, sprich Traces etc.
 
Hi ich werd mich mal als Tester engagieren.
Gepatched ists, lief auch durch, danach gebaut und gestartet.

Ergebnis 1: Keine Info auf dem SNOM Phone, beide benötigten Optionen in der sip.conf sind gesetzt, notifyringing und sendcallinfo, am Telefon ist die Option das ich den Dialog sehen will auch an.

Ergebnis 2:

[Jun 23 09:41:26] WARNING[12693]: pbx.c:1832 pbx_extension_helper: No application 'PickupChan' for extension (sip-intern, **13, 1)

PickupExtension ist bei mir "**", PickupChan wird nicht gefunden als App.

Lösung vorübergehend:

Hab den Fehler gelöst, der Patch ist schön und gut, da aber menuselect-tree nicht gepatched wird, wird app_pickup.c natürlich auch nicht gebaut, dann kann es ja auch nicht funktionieren mit dem Pickup.
Was den fehlenden XML-Pickup-"Dialog" angeht muss ich mal schauen sobald ich heute abend neu gebaut habe, ob der dann auch wieder da ist oder abstinent bleibt.
 
Zuletzt bearbeitet:
Hallo Leute,

Damit der Pickup auch funktioniert, muss im Dialplan die App PickupChan aufgerufen werden. Falls nur mit SIP Telefonen gearbeitet wird und man nicht mit direktem Amt arbeitet, sollte folgende Zeile den Job im Context der Telefone erledigen:
Code:
exten => _*8.,1,PickupChan(SIP/${EXTEN:2})

Auf den Telefonen sollte Firmware 7.1.33 laufen. Für die Funktionstasten weiterhin "Nebenstelle" auswählen.

Wenn ich direkt mit Amtsleitungen arbeite und SIP Telefonen funktioniert das auch oder zzt nur SIP ?

Geht auch Firmware 7.1.30 ? Kein Lust auf 7.1.33 zu wechseln weil die evtl. noch Probleme machen soll.

Ansonsten wieder meine vollen Respekt. Werde den patch wohl auch mal angehn :)

Gruss,

Jörg
 
Mach einen Fallback und schreib als "2" Aktion für die Extension nicht SIP/ sondern zum Beispi Srx/ der Zap/ mit PickupChan, sollte also imho auch tun.

exten => _*8.,1,PickupChan(SIP/${EXTEN:2})
exten => _*8.,2,PickupChan(Zap/${EXTEN:2})
exten => _*8.,n,Hangup()
 
Hallo,

der menuselect-tree muss nicht gepatched werden, da dieser vorm kompilieren neu erstellt wird.

Es gibt nach dem Patch 2 Pickup-Apps:
app_directed_pickup (Directed Call Pickup Application) Das ist die 1.4 standard App
app_pickup (PickUp/PickDown/Steal/PickupChan/StealChan) Der im Patch inkludierte aus dem Bristuff

In jedem Fall zumindest app_pickup auswählen.

@Neo_0815
Wechseln deine Hints den Status, wenn jemand auf dem zu überwachenden Telefon anruft? Bitte mit "show hints" kontrollieren. Wenn der Asterisk etwas mehr verbose ist, sollte er es auch auf der CLI anzeigen. Wenn nicht, kontrolliere bitte, ob für das zu überwachende Telefon der Eintrag call-limit existiert.

@jackfritt
Hab leider keine Zaptel Hardware zum Greifen, aber theoretisch sollte es wie von Neo_0815 beschrieben funktionieren. Auch habe ich auf meiner Testumgebung nur noch 7.1.33 am laufen. Im Wiki von Snom existiert jedoch kein Hinweis, dass 7.1.33 für die "Remote Target URI" Methode benötigt wird. Also einfach mal testen. Falls es nicht funkt, schicke mir bitte einen SIP-Trace von den Notifies und Invites des überwachenden Telefones.
 
Hallo,

der menuselect-tree muss nicht gepatched werden, da dieser vorm kompilieren neu erstellt wird.

Es gibt nach dem Patch 2 Pickup-Apps:
app_directed_pickup (Directed Call Pickup Application) Das ist die 1.4 standard App
app_pickup (PickUp/PickDown/Steal/PickupChan/StealChan) Der im Patch inkludierte aus dem Bristuff

In jedem Fall zumindest app_pickup auswählen.

@Neo_0815
Wechseln deine Hints den Status, wenn jemand auf dem zu überwachenden Telefon anruft? Bitte mit "show hints" kontrollieren. Wenn der Asterisk etwas mehr verbose ist, sollte er es auch auf der CLI anzeigen. Wenn nicht, kontrolliere bitte, ob für das zu überwachende Telefon der Eintrag call-limit existiert.

Der menuselect-tree muss bei mir gepatched werden, ich finde im ebuild keine Hinweise das der "neu erstellt" wird, wird er bei mir auch nicht.
Wenn ich den mit patche funktionierts 1a (ich nehm nicht dein Ebuild, sondern das Basis Ebuild aus dem voip-overlay, angepasst an die 1.4.21, also nix außergewöhnliches geändert).
Dann habe ich auch beide "app_*" im /usr/lib/asterisk/modules :)

@Hints: Die funktionieren, da die Lampe ja "blinkt", die würde ohne Hint nicht blinken. call-limit ist gesetzt.

Gruß
 
Hallo Neo_0815,

ich kann nur sagen, dass es bei mir ohne Patchen des menu-tree funktioniert. Ich kann auf einem frischen System mein eBuild emergen und alles, inkl. dem Patch, funktioniert ohne Probleme. Wird mein Patch bei deinem eBuild per epatch integriert? Oder entpackst du zuerst das eBuild, wendest den patch und mergest es dann?

Probiere doch einfach mal mein eBuild aus. Übrigens gabs letztens einen Version Bump im Overlay auf die aktuellen Versionen...
 
Per epatch, alles andere ist doch nicht wartbar ^^ ich mach da nix manuell.
Naja ist auch rille, ich hab den Patch ums patchen vom menutree erweitert, danach bauts ja.

Gruß

PS: menuselect.makeopts das ist der der per emake aus dem tree erzeugt wird, ich seh nirgends das menu-tree irgendwo mal rausspringt, naja ...
 
So hier kommt ein Ergebnis:

Nun gibts auch den Dialog.

Einziges Problem, wenn ich die "Taste" drücke die blinkt funktioniert es, es wird **13 gewählt und PickupChan nimmt den Kanal (das geht aber an sich auch mit "Pickup"), was nicht ganz klappt ist, wenn ich das "Häkchen" rechts im Display verwende um den Anruf anzunehmen, da wählt er "**12" statt "**13", warum auch immer, ich weiss nicht woher er die 12 nimmt.

-- Executing [13@incoming:1] Dial("Srx/gArcor-0x82145d8", "SIP/13|20|tT") in new stack
-- Called 13
Extension Changed 13[hints] new state Ringing for Notify User 11
-- SIP/13-0825edf8 is ringing
-- SIP/13-0825edf8 is ringing
-- SIP/13-0825edf8 is ringing
-- Executing [**12@sip-intern:1] PickupChan("SIP/11-08260388", "SIP/12") in new stack
-- No channel found SIP/12.
== Spawn extension (sip-intern, **12, 1) exited non-zero on 'SIP/11-08260388'
-- SIP/13-0825edf8 is ringing
-- SIP/13-0825edf8 is ringing
-- Executing [**13@sip-intern:1] PickupChan("SIP/11-0822f210", "SIP/13") in new stack
Nice channel, I'll take it: SIP/13
-- Channel SIP/11-0822f210 picked up ringing channel SIP/13-0825edf8
== Spawn extension (sip-intern, **13, 1) exited non-zero on 'SIP/11-0822f210'
-- SIP/11-0822f210 answered Srx/gArcor-0x82145d8
Extension Changed 13[hints] new state Idle for Notify User 11
== Spawn extension (incoming, 13, 1) exited non-zero on 'Srx/gArcor-0x82145d8'

Ist natürlich blöd, ich würd ja an sich schon gerne auch per "Häkchen" rangehen, nur steht da wohl die falsche Nummer drin.
Im XML selber stehts aber richtig:

<target uri="sip:**[email protected]"/></remote>

Wieso wählt der die 12, ich werd irre ^^
 
Zuletzt bearbeitet:
Dann hast du ein eBuild, bei dem vor dem compilieren kein "emake menuselect.makeopts" ausgeführt wird. Schau mal in die neuste Version vom Overlay! Oder einfach mal meine ausprobieren ;-) Ist die aktuelle aus dem Overlay, nur mit Patch.

Zurück zum Thema: Dein Telefon zeigt noch immer nichts an!? Ein SIP-Trace des Notify wäre interessant! Hast auch sencallinfo global definiert?
 
Öhm *update*, siehe Bericht, doch es zeigts an, die XML Infos sind auch richtig.
Nur das was er wählt beim Tastendruck auf das "Häkchen" ist "Käse" ;-)
 
Ich kann mit 7.1.33 und Snom 370 nicht mit Haken wählen. Wie gesagt, bitte mal einen SIP-Trace. Vielleicht finden wir dort die ominöse 12?

<target uri="sip:**[email protected]"/></remote> Schaut ja eigentlich gut aus. Bug in 7.1.30!?
 
Zuletzt bearbeitet:
Auf dem 370 ist da kein Häkchen, da steht bei dir "OK".
Und auf dem 370 hab ich grad getestet, kommt bei Druck auf Ok eine "10" raus (also ich ruf immer noch die 13 an, und bei dem Telefon mit der Nummer 15, erzeugt OK eine 10, bei dem mit der 11 erzeugt Druck auf OK eine 12 ... HÖH?)

Trace: http://fachschaft.imn.htwk-leipzig.de/~tkrah/siptrace
 
Auf dem 370 ist da kein Häkchen, da steht bei dir "OK".
So isses, aber auch wenn ich darauf klicke, passiert nichts. Snom wird schon wissen wieso... :)

Und auf dem 370 hab ich grad getestet, kommt bei Druck auf Ok eine "10" raus (also ich ruf immer noch die 13 an, und bei dem Telefon mit der Nummer 15, erzeugt OK eine 10, bei dem mit der 11 erzeugt Druck auf OK eine 12 ... HÖH?)

Naja, der SIP Trace schaut ja sauber aus. Sprich die übermittelten Parameter stimmen. Kann mir also nicht wirklich erklären, was da intern im Telefon passiert.
 
So isses, aber auch wenn ich darauf klicke, passiert nichts. Snom wird schon wissen wieso... :)



Naja, der SIP Trace schaut ja sauber aus. Sprich die übermittelten Parameter stimmen. Kann mir also nicht wirklich erklären, was da intern im Telefon passiert.

Hm ^^ aha also wenn ich auf "Ok" drücke tut sich was (die 7.1.33 ist ja nicht mehr online aufgrund von kritischen "bricked" Snoms), daher werd ich die so schnell nichte testen können.

Das frag ich mich auch, wie das Telefon die Nummern da bestimmt *kopfschüttel*.

Aber ansonsten, toller Patch, funktioniert auf den ersten Blick , mal sehn wie es auf den zweiten (Laufzeit) so aussieht.
Thx :)

Gruß
 
Ist doch klar wie die Nummern bestimmt werden - rand()

Bis jetzt konnte ich noch nichts falsches feststellen. Auch die Problematik mit dem 302 Redirect funktioniert zumindest bei mir. In den nächsten Tagen kümmere ich mich noch um ein paar Ausgaben zum Debuggen und die korrekte Ausgabe beim Anschauen der SIP Parameter. Dann noch an 1.6 anpassen, kurz testen und vielleicht mal im Bug-Tracker von Digium einstellen!?
 

Statistik des Forums

Themen
246,197
Beiträge
2,247,888
Mitglieder
373,755
Neuestes Mitglied
grdex
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.