chan-sccp-b release für asterisk 1.2 und 1.4

chaos2000

Aktives Mitglied
Mitglied seit
22 Aug 2004
Beiträge
2,028
Punkte für Reaktionen
0
Punkte
36
nach einiger Zeit der Stille haben wir nun endlich wieder eine funktionierende Version für asterisk 1.2 und 1.4.
Es ist ein merge das beide trees vereint, so müssen wir nicht mehr zwei Versionen warten.
An neuen Features ist nicht bisweilen nicht viel hinzugekommen.
in kürze noch mal das was mir auf die Schnelle einfällt:

- serviceURL für line-buttons
- DND-toggle on phone
- GPickUp patch
- received calls patch
- variables can be set for devices and/or lines

distinctive ringing ist auch möglich mit protocolversion=5, das aber auch einige Nebeneffekte haben kann die z.Z. noch nicht bekannt sind. Bei mir läuft es auf 7971 und 7970 bisweilen ohne Problem.

http://sourceforge.net/projects/chan-sccp-b/
 
Zuletzt bearbeitet:
Prima...

Jup, funzt prima. Keine Deadlocks mehr, crasht nicht mehr bei Blindtransfers.
Was noch neu ist:

Mit der SetMessage-Anwendung kann man aus dem Dialplan Nachrichten an das anrufende Telefon senden.

SetMessage("Rufumleitung extern an XX") oder so.
 
SetMessage - funktioniert aber nicht bei jedem Telefon (z.B. 7970/7971) weshalb ich es nicht erwähnt habe.
Stimmt das mit dem blindTransfer haben wir auch gelösst.
Kann ich fragen welche asterisk version du verwendest?
 
Du hast recht! Ich hab hier viele 7961er, bei denen klappt SetMessage() prima. Habe gerade auch bei einem 7971 geschaut, da geht es auch, aber die Meldung verschwindet wieder, wenn man nur den Hörer abnimmt und wieder auflegt.

Ein 7970er habe ich nicht.

Ich verwende Asterisk 1.4.23.

Ich sehe mal zu, dass SetMessage auch beim 7971 richtig läuft, vielleicht geht es dann auch bei den anderen Phones.
 
das wäre super, ich hab es auf meinem 7971 nicht zu sehn bekommen - muss es heute abend noch mal testen.
 
Mit diesem Patch funzt es auch an einem alten 7960, das hier noch herumsteht, das hat bisher auch gar nichts angezeigt. Jetzt zeigt es die Nachricht an, auch nach dem Auflegen wieder. Nur nach einem Reset nicht, da müsste die Nachricht noch in der ast_db gespeichert werden.

--- chan_sccp_20071111/chan_sccp.c 2007-11-11 16:24:24.000000000 +0100
+++ chan_sccp_20071111-mod/chan_sccp.c 2007-11-12 10:18:12.571654218 +0100
@@ -1550,10 +1550,20 @@

d = c->device;
ast_mutex_lock(&d->lock);
- if (strlen(tmp)>0)
- sccp_dev_displayprinotify(d,tmp,0,0);
- else
- sccp_dev_displayprinotify(d,"Message off",0,1); //turn message off
+
+ if (strlen(tmp)>0) {
+ sccp_dev_displayprinotify(d,tmp,5,0);
+ sccp_dev_displayprompt(d,0,0,tmp,0);
+ d->phonemessage = strdup(tmp);
+ }
+ else {
+ sccp_dev_displayprinotify(d,"Message off",5,1);
+ sccp_dev_displayprompt(d,0,0,"Message off",1);
+ d->phonemessage = NULL;
+
+ }
+
+
ast_mutex_unlock(&d->lock);
return 0;
}
diff -ru chan_sccp_20071111/chan_sccp.h chan_sccp_20071111-mod/chan_sccp.h
--- chan_sccp_20071111/chan_sccp.h 2007-11-11 16:39:09.000000000 +0100
+++ chan_sccp_20071111-mod/chan_sccp.h 2007-11-12 10:14:30.925139313 +0100
@@ -399,6 +399,7 @@
sccp_hint_t * hints; /*!< list of hint pointers. Internal lines to notify the state */
pthread_t postregistration_thread;
struct ast_variable * variables; /*!< Channel variables to set */
+ char * phonemessage;
};

struct sccp_session {
diff -ru chan_sccp_20071111/sccp_device.c chan_sccp_20071111-mod/sccp_device.c
--- chan_sccp_20071111/sccp_device.c 2007-11-11 17:38:21.000000000 +0100
+++ chan_sccp_20071111-mod/sccp_device.c 2007-11-12 10:20:15.740831565 +0100
@@ -609,6 +609,11 @@

sccp_dev_clearprompt(d, 0, 0);
sccp_dev_displayprompt(d, 0, 0, SKINNY_DISP_YOUR_CURRENT_OPTIONS, 0);
+
+ if (d->phonemessage)
+ sccp_dev_displayprompt(d,0,0,d->phonemessage,0);
+
+
sccp_dev_set_keyset(d, 0, 0, KEYMODE_ONHOOK); /* this is for redial softkey */

/* check for forward to display */
 
Kannst Du den patch mal bei sf hinterlegen, ich baue es heute abend noch ein.

Das mit dem speichern kann ich auch noch machen - müsste auch noch was hinzufügen (user defined DND)
 
Zuletzt bearbeitet:
Hab den Patch bei SF hochgeladen.
 
Ich könnte mir noch ein Problem vorstellen.
Wenn man schon eine DND-Message auf dem Display hat wird diese "gelöscht" und man vergisst vielleicht den status.
 
Die DND-Meldung hat Vorrang. Sie wird zwar durch die andere Meldung überdeckt, aber wenn man abhebt und wieder auflegt taucht die DND-Meldung wieder auf. Stellt man DND wieder ab, taucht die andere Meldung wieder auf.
 
Zuletzt bearbeitet:
Hi, wollte soeben auf nem 1.4er Asterisk das Modul kompilieren aber bekomme folgende Fehlermeldung:

Code:
asterisk:/usr/src/asterisk/chan_sccp_20071111# make
sh ./create_config.sh "/usr/include"
Now compiling .... chan_sccp.c          1758 lines
chan_sccp.c: In function 'sccp_request':
chan_sccp.c:168: warning: passing argument 1 of 'ast_copy_string' discards qualifiers from pointer target type
chan_sccp.c:175: warning: passing argument 1 of 'ast_copy_string' discards qualifiers from pointer target type
chan_sccp.c: In function 'reload_config':
chan_sccp.c:1461: error: incompatible type for argument 1 of 'ast_inet_ntoa'
chan_sccp.c:1461: error: too many arguments to function 'ast_inet_ntoa'
chan_sccp.c:1470: error: incompatible type for argument 1 of 'ast_inet_ntoa'
chan_sccp.c:1470: error: too many arguments to function 'ast_inet_ntoa'
chan_sccp.c:1477: error: incompatible type for argument 1 of 'ast_inet_ntoa'
chan_sccp.c:1477: error: too many arguments to function 'ast_inet_ntoa'
chan_sccp.c:1486: error: incompatible type for argument 1 of 'ast_inet_ntoa'
chan_sccp.c:1486: error: too many arguments to function 'ast_inet_ntoa'
chan_sccp.c: At top level:
chan_sccp.c:1564: warning: function declaration isn't a prototype
chan_sccp.c:1633: warning: function declaration isn't a prototype
chan_sccp.c: In function 'unload_module':
chan_sccp.c:1691: error: incompatible type for argument 1 of 'ast_inet_ntoa'
chan_sccp.c:1691: error: too many arguments to function 'ast_inet_ntoa'
chan_sccp.c: At top level:
chan_sccp.c:1743: warning: function declaration isn't a prototype
chan_sccp.c:1751: warning: function declaration isn't a prototype
chan_sccp.c:1755: warning: function declaration isn't a prototype
make: *** [.tmp/chan_sccp.o] Fehler 1
asterisk:/usr/src/asterisk/chan_sccp_20071111#

Andere Versionen für 1.4 liesen sich vorher auf diesem System kompilieren...jemand ne Idee?
 
Kannst du mal die komplette Ausgabe von make schicken, also incl. der fragen und auntworten und den found .... Zeilen?
Welche asteriskversion hast Du?
 
Hallo,

das Problem kam bei mir auch. Nach einem "make clean" und einem erneuten "make" kam aber das beruhigende "Creating config file"...

Ist einen Versuch wert, hier hat es bei zwei Servern funktioniert.

Grüße,

2bbionic
 
Cs-cp7921

Hallo,

ich habe jetzt auch den sccp-b Channel getestet.
Mein 7961 funktioniert auch (unverändert^^) gut damit.
Meine 7921er haben nach wie vor ein gravierendes Thema: Sie bekommen keine Nummer zugewieden und können dadurch nicht "mitspielen" - Hängt warscheinlich daran, dass da auch steht "Skinny Phone Type : unknow(0)"...

Code:
asterisk1*CLI> sccp show device SEP001BD458E767
Current settings for selected Device
------------------------------------

MAC-Address        : SEP001BD458E767
Protocol Version   : phone=0, channel=3
Keepalive          : 60
Registration state : None(0)
State              : OnHook(0)
MWI handset light  : OFF
Description        :
Config Phone Type  :
Skinny Phone Type  : unknow(0)
Softkey support    : No
Autologin          :
Image Version      :
Timezone Offset    : 0
Capabilities       : 0x8 (alaw)
Codecs preference  : (alaw)
Can DND            : Reject
Can Transfer       : Yes
Can Park           : Yes
Private softkey    : Enabled
Can CFWDALL        : No
Can CFWBUSY        : No
Dtmf mode          : In-Band
Trust phone ip     : No
Early RTP          : No
asterisk1*CLI>

Leider habe ich in Punkto Code-Entwicklung keine Ahnung. Ich habe nur 8 7921er und mehrere Asteriske(1.2 + 1.4) und Callmanagers (4.2-6.0).
Wenn ich dazu beitragen kann, dass diese Phones funktionieren, lasst es mich wissen...

:spocht:
 
@ 2bbionic

Danke, das wars...musste ein "make clean" durchführen da die alten configfiles
(config.h chan_sccp.so *.tmp ) in dem tar-archiv enthalten waren und scheinbar für ne 1.2er Version ertellt wurden. Villeicht könnte man um zukünftige Probleme zu vermeiden diese Dateien vor einem Release aus dem tar-Archiv nehmen? Oder ne Prüfroutine vorher laufen lassen de sicherstellt das diese zuvor gelöscht werden?

Jetzt klappts auf jeden Fall. Danke an all die engagierten Entwickler

MFG

Mysterious
 
@Overkill

Hmm, da ist Autologin leer, dann holt sich das Phone auch keine Line.
 
@Mysterious

stimmt, das kann passoeren. Beim nächsten release wirds besser ;)
 
Danke danke, ich werde morgen früh das release mal aktualisieren.
 
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.