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

7921

@fsiggi:
Ich bin aber der Meinung, dass ich das autologin richtig configuriert habe - hier die sccp.conf:

Code:
[general]
servername = Asterisk			; show this name on the device registration
keepalive = 60				; phone keep alive message evey 60 secs. Used to check the voicemail
debug = 1					; console debug level. 1 => 10
context = from-internal
dateFormat = D.M.Y			; M-D-Y in any order. Use M/D/YA (for 12h format)
bindaddr = 192.168.15.56			; replace with the ip address of the asterisk server (RTP important param)
port = 2000					; listen on port 2000 (Skinny, default)
disallow=all				; First disallow all codecs
allow=alaw					; 
firstdigittimeout = 16			; dialing timeout for the 1st digit 
digittimeout = 4				; more digits
digittimeoutchar = #			; you can force the channel to dial with this char in the dialing state
autoanswer_ring_time = 1		; ringing time in seconds for the autoanswer, the default is 0
autoanswer_tone = 0x32			; autoanswer confirmation tone. For a complete list of tones: grep SKINNY_TONE sccp_protocol.h
						; not all the tones can be played in a connected state, so you have to try.
remotehangup_tone = 0x32		; passive hangup notification. 0 for none
transfer_tone = 0				; confirmation tone on transfer. Works only between SCCP devices
callwaiting_tone = 0x2d			; sets to 0 to disable the callwaiting tone
musicclass=default			; Sets the default music on hold class
language=de					; Default language setting
;accountcode=skinny			; accountcode to ease billing
deny=0.0.0.0/0.0.0.0			; Deny every address except for the only one allowed. 
permit=192.168.15.0/255.255.255.0	; Accept class C 192.168.1.0
						; You may have multiple rules for masking traffic.
						; Rules are processed from the first to the last.
						; This General rule is valid for all incoming connections. It's the 1st filter.

;localnet = 192.168.15.0/255.255.255.0 ; All RFC 1918 addresses are local networks
;externip = 1.2.3.4			; IP Address that we're going to notify in RTP media stream
;externhost = mydomain.dyndns.org   ; Hostname (if dynamic) that we're going to notify in RTP media stream
; externrefresh = 60			; expire time in seconds for the hostname (dns resolution)
dnd = on					; turn on the dnd softkey for all devices. Valid values are "off", "on" (busy signal), "reject" (busy signal), "silent" (ringer = silent)
rtptos = 184				; sets the default rtp packets TOS
echocancel = on				; sets the phone echocancel for all devices
silencesuppression = off		; sets the silence suppression for all devices
callgroup=1				; We are in caller groups 1,3,4. Valid for all lines
pickupgroup=1			; We can do call pick-p for call group 1,3,4,5. Valid for all lines
;amaflags = 				; Sets the default AMA flag code stored in the CDR record
trustphoneip = no				; The phone has a ip address. It could be private, so if the phone is behind NAT 
						; we don't have to trust the phone ip address, but the ip address of the connection
tos = 0x68					; call control packets tos (0x68 Assured forwarding)
;earlyrtp = none				; valid options: none, offhook, dial, ringout. default is none.
						; The audio strem will be open in the progress and connected state.
private = on				; permit the private function softkey
mwilamp = on				; Set the MWI lamp style when MWI active to on, off, wink, flash or blink
mwioncall = off				; Set the MWI on call.
;blindtransferindication = ring	; moh or ring. the blind transfer should ring the caller or just play music on hold
;protocolversion = 3			; skinny version protocol. Just for testing. 2 to 6
;cfwdall = off				; activate the callforward ALL stuff and softkeys
;cfwdbusy = off				; activate the callforward BUSY stuff and softkeys




[devices]

type        = 7961			; device type (see below)
autologin   = 100,,  ; lines list. You can add an empty line for an empty button (7960, 7970, 7940, 7920)
description = CiscoPhone			; internal description. Not important
;keepalive = 60                          ; set 0 to disable the keepalive check.
;tzoffset  = +2
transfer = on				; enable or disable the transfer capability. It does remove the transfer softkey
park = on					; take a look to the compile howto. Park stuff is not compiled by default
speeddial =
speeddial = 12,Detlef 				; you can add an empty speedial if you want an empty button (7960, 7970, 7920)
speeddial = 14,Dirk			; speeddial number and name
speeddial = 22,Ralph
speeddial = 27,Bernd
cfwdall = on				; activate the callforward stuff and softkeys
cfwdbusy = off
dtmfmode = inband				; inband or outofband. outofband is the native cisco dtmf tone play.
						; Some phone model does not play dtmf tones while connected (bug?), so the default is inband
imageversion = P00405000700		; useful to upgrade old firmwares (the ones that do not load *.xml from the tftp server)
;deny=0.0.0.0/0.0.0.0			; Same as general
;permit=192.168.1.5/255.255.255.255	; This device can register only using this ip address
dnd = on					; turn on the dnd softkey for this device. Valid values are "off", "on" (busy signal), "reject" (busy signal), "silent" (ringer = silent)
trustphoneip = no				; The phone has a ip address. It could be private, so if the phone is behind NAT 
						; we don't have to trust the phone ip address, but the ip address of the connection
;earlyrtp = none				; valid options: none, offhook, dial, ringout. default is none.
						; The audio strem will be open in the progress and connected state.
private = on				; permit the private function softkey for this device
mwilamp = on				; Set the MWI lamp style when MWI active to on, off, wink, flash or blink
mwioncall = ob				; Set the MWI on call.
device => SEP001818BBC36F 		; device name SEP<MAC>
       

type        = 7921                      ; device type (see below)
autologin   = 200,  ; lines list. You can add an empty line for an empty button (7960, 7970, 7940, 7920)
login 	 = 200
line = 200
description = WLANCiscoPhone                        ; internal description. Not important
;keepalive = 60                          ; set 0 to disable the keepalive check.
;tzoffset  = +2
transfer = on                           ; enable or disable the transfer capability. It does remove the transfer softkey
park = on                                       ; take a look to the compile howto. Park stuff is not compiled by default
cfwdall = on                            ; activate the callforward stuff and softkeys
cfwdbusy = off
dtmfmode = inband                               ; inband or outofband. outofband is the native cisco dtmf tone play.
                                                ; Some phone model does not play dtmf tones while connected (bug?), so the default is inband
imageversion = P00405000700             ; useful to upgrade old firmwares (the ones that do not load *.xml from the tftp server)
;deny=0.0.0.0/0.0.0.0                   ; Same as general
;permit=192.168.1.5/255.255.255.255     ; This device can register only using this ip address
dnd = on                                        ; turn on the dnd softkey for this device. Valid values are "off", "on" (busy signal), "reject" (busy signal), "silent" (ringer = silent)
trustphoneip = no                               ; The phone has a ip address. It could be private, so if the phone is behind NAT
                                                ; we don't have to trust the phone ip address, but the ip address of the connection
;earlyrtp = none                                ; valid options: none, offhook, dial, ringout. default is none.
                                                ; The audio strem will be open in the progress and connected state.
private = on                            ; permit the private function softkey for this device
mwilamp = on                            ; Set the MWI lamp style when MWI active to on, off, wink, flash or blink
mwioncall = ob                          ; Set the MWI on call.
device => trustphoneip = no                               ; The phone has a ip address. It could be private, so if the phone is behind NAT
                                                ; we don't have to trust the phone ip address, but the ip address of the connection
;earlyrtp = none                                ; valid options: none, offhook, dial, ringout. default is none.
                                                ; The audio strem will be open in the progress and connected state.
private = on                            ; permit the private function softkey for this device
mwilamp = on                            ; Set the MWI lamp style when MWI active to on, off, wink, flash or blink
mwioncall = ob                          ; Set the MWI on call.
device => SEP001BD458E767               ; device name SEP<MAC>


 
[lines]

id          = 100			; future use
pin         = 1234			; future use
label       = Claus Schoenfelder			; button line label (7960, 7970, 7940, 7920)
description = Claus Schoenfelder		; top diplay description
context     = from-internal
incominglimit = 1				; more than 1 incoming call = call waiting.
transfer = on				; per line transfer capability. on, off, 1, 0
mailbox = 100				; voicemail.conf (syntax: vmbox[@context][:folder])
vmnum = 600					; speeddial for voicemail administration, just a number to dial
cid_name = Claus Schoenfelder 			; caller id name
cid_num = 100
trnsfvm = 1000				; extension to redirect the caller (e.g for voicemail)
secondary_dialtone_digits = 9		; digits for the secondary dialtone (max 9 digits)
secondary_dialtone_tone = 0x22	; outside dialtone
musicclass=default			; Sets the default music on hold class
language=de					; Default language setting
;accountcode=79501			; accountcode to ease billing
rtptos = 184				; sets the the rtp packets TOS for this line
echocancel = on				; sets the phone echocancel for this line
silencesuppression = off		; sets the silence suppression for this line
callgroup=1				; We are in caller groups 1,3,4. Valid for this line
pickupgroup=1			; We can do call pick-p for call group 1,3,4,5. Valid for this line
;amaflags = 				; Sets the default AMA flag code stored in the CDR record for this line
line => 100

id          = 200                       ; future use
pin         = 1234                      ; future use
label       = Markus                        ; button line label (7960, 7970, 7940, 7920)
description = Markus                ; top diplay description
context     = from-internal
incominglimit = 1                               ; more than 1 incoming call = call waiting.
transfer = on                           ; per line transfer capability. on, off, 1, 0
mailbox = 200                           ; voicemail.conf (syntax: vmbox[@context][:folder])
vmnum = 610                                     ; speeddial for voicemail administration, just a number to dial
cid_name = Markus                   ; caller id name
cid_num = 200 
trnsfvm = 2000                          ; extension to redirect the caller (e.g for voicemail)
secondary_dialtone_digits = 9           ; digits for the secondary dialtone (max 9 digits)
secondary_dialtone_tone = 0x22  ; outside dialtone
musicclass=default                      ; Sets the default music on hold class
language=de                                     ; Default language setting
accountcode=200                       ; accountcode to ease billing
rtptos = 184                            ; sets the the rtp packets TOS for this line
echocancel = on                         ; sets the phone echocancel for this line
silencesuppression = off                ; sets the silence suppression for this line
callgroup=1                             ; We are in caller groups 1,3,4. Valid for this line
pickupgroup=1                   ; We can do call pick-p for call group 1,3,4,5. Valid for this line
;amaflags =                             ; Sets the default AMA flag code stored in the CDR record for this line
line => 200

Sollte jemand den Fehler finden wäre ich äußerst dankbar...

:groesste:
 
Beim 7921 steht:

device => trustphoneip = no
 
@fsiggi

Super - Danke - I love you :)

Und was ich noch sagen wollte: :groesste:


Echt cool :)
 
Hi, heute morgen hatte ich leider wieder einmal Probleme mit der Pickup Funktion. Die Konsole spuckte mir folgende Fehlermeldung aus nach drücken von PickUp:

Das passiert aber nur sporadisch....

Code:
[Nov 14 08:56:10] ERROR[32448]: sccp_actions.c:1425 sccp_handle_open_receive_channel_ack: SEP001BD40B6F5E: No channel with this PassThruId!

Kann das jemand ebenfalls nachvollziehen?
 
Hmm, das passiert z.B. wenn der Anruf, den du holen willst, schon aufgelegt ist.
 
Segfault

Hallo,

heute morgen gab es seit langem mal wieder einen Segfault.

Program terminated with signal 11, Segmentation fault.
#0 ast_bridged_channel (chan=0x0) at channel.c:3977
3977 channel.c: No such file or directory.
in channel.c
(gdb) bt full
#0 ast_bridged_channel (chan=0x0) at channel.c:3977
bridged = <value optimized out>
#1 0xb6cfe96a in sccp_channel_transfer (c=0x822bf80) at sccp_channel.c:812
d = <value optimized out>
newcall = (sccp_channel_t *) 0x8229b58

Das ist mal wieder so ein seltener Fall, wo ein anderer Thread schon aufgeräumt hat und deswegen plötzlich chan=0x0.

Ich habe mal folgenden Patch eingespielt, der macht den Segfault unwahrscheinlicher.

--- chan_sccp_20071111/sccp_channel.c 2007-11-08 19:31:49.000000000 +0100
+++ chan_sccp_20071111-mod/sccp_channel.c 2007-11-14 09:42:32.051471237 +0100
@@ -809,7 +809,7 @@
sccp_indicate_lock(c, SCCP_CHANNELSTATE_CALLTRANSFER);
newcall = sccp_channel_newcall(c->line, NULL);
/* set a var for BLINDTRANSFER. It will be removed if the user manually answer the call Otherwise it is a real BLINDTRANSFER*/
- if (newcall && newcall->owner && CS_AST_BRIDGED_CHANNEL(c->owner))
+ if (newcall && newcall->owner && c->owner && CS_AST_BRIDGED_CHANNEL(c->owner))
pbx_builtin_setvar_helper(newcall->owner, "_BLINDTRANSFER", CS_AST_BRIDGED_CHANNEL(c->owner)->name);
}
 
@fsiggi

Also da ich selbst den Anruf getätigt habe der reinkam kann ich mit Sicherheit sagen das der Anrufer nicht aufgelegt hatte sondern dann ein "Der Teilnehmer ist vorübergehend nicht erreichbar" bekam. Anruf kam über chan_capi rein.
 
@Mysterious

Stell bitte mal sccp debug auf 10 und poste das mal.
 
danke fsiggi,

spiele den patch mal ein lege ein neues file nach sf.net
Dann ist auch mein dummer make fehler weg.
ich gebe Bescheid wenn es aktualisiert ist
 
ok,

neues File ist oben - ich hoffe nur dieses Mal ohne make-Probleme.
Sorry noch mal.
 
@chaos2000

Klappt eigentlich das SetMessage-Krams jetzt bei Dir?
 
@fsiggi

OK, kann es allerdings erst am WE machen da es ne Anlage beim Kunden ist wo ich erst am WE wieder hinkomme. WErde dann mal den Output mit Degug 10 schicken.
 
@fsiggi

ja macht es.
Übrigens, nicht wundern das deine patches weg sind. Die sind closed und im aktuellen file enthalten.
Ich hatte das SetMessege erst falsch verstanden - dachte das sendet an das called device.
Jetzt haben wir zwei Funktionen die fast das selbe machen - das SendText ist ja schon so etwas.
Da könnten wir deine Erweiterung einbauen und sind immernoch asterisk kompatibel
 
@chaos2000

An das called Device senden, wäre auch cool, wenn der channel noch im RINGING state ist. Dann könnte man wohl auch bei Transfers die ursprüngliche CALLERID mitsenden. Die Frage wäre, wie man an das called Device kommt.

SendText kannte ich gar nicht, aber macht von der Beschreibung wirklich dasselbe. Werde das morgen mal gleich ausprobieren.
 
es gibt bei der neuen Version Compile-Errors unter * 1.4:

Code:
sccp_pbx.c: In function 'sccp_pbx_answer':
sccp_pbx.c:363: error: 'struct ast_channel' has no member named 'type'
sccp_pbx.c:365: error: 'struct ast_channel' has no member named 'type'
sccp_pbx.c: At top level:
sccp_pbx.c:656: warning: initialization from incompatible pointer type
make: *** [.tmp/sccp_pbx.o] Fehler 1

Any hints?
 
oh ja, denke das hab ich. 10 min dann ist es gefixed

Das Problem kam durch meinen meetme fix.
Unter 1.2 muss man noch
Code:
ast->type = "SCCP";
setzen.

@fsiggi
das SendText() funktioniert halt auch mit anderen channels
 
Zuletzt bearbeitet:
@chaos2000

merci - kompiliert jetzt!

dann werde ich mal testen :)
 
ich bin gespannt :)
 
Nun gut, dann sehe ich mal zu, SendText() in chan_sccp_b mit der Funktionalität von SetMessage() auszustatten...
 
Also ich glaube ich hab hier gerade Urlaubs-Blackout... keines der nicht-von-mir-selbst-gepatchten-chan_sccp-versionen, sprich alle die hier aus chan_sccp_b wohl hervorkommen - auch die aktuellen vom 11.11 und 14.11, mag bei mir (Asterisk 1.4.13, x86) laufen.

Compiliert alles schoen, keine Fehler.
Aber dann kommt beim Modul laden immer

Code:
[Nov 15 10:01:52]     -- Added device 'SEP000xxxxxxxxx' (7960)
Illegal instruction

...und der Asterisk beendet sich.
Uebrigens auch mit der mitgelieferten Demo-sccp.conf - daran kann es also nicht liegen:

Code:
[Nov 15 10:16:13]   == Parsing '/etc/asterisk/sccp.conf': [Nov 15 10:16:13] Found
[Nov 15 10:16:13]     -- GLOBAL: Preferred capability (alaw|ulaw)
[Nov 15 10:16:13]     -- Added empty speeddial
[Nov 15 10:16:13]     -- Added speeddial 2: name (1000)
[Nov 15 10:16:13]     -- Added device 'SEP00119341E684' (7905)
Illegal instruction
WR1:/etc/asterisk #

Normalerweise wuerde ich selbst das Problem etwas weiter eingrenzen, aber da ich derzeit nur noch ein einziges einsames Cisco Phone zum testen an chan_sccp habe und der Rest auf CCM/CCME laeuft inzwischen, hat das gerade bei mir nicht so hohe Prioritaet.

Vielleicht weiss ja einer aus dem Stehgreif, wo das Problem ist - scheint ja nur bei mir zu sein und was ganz banales, sonst haetten das Problem mehrere.

...ab und an darf man sich ja auch mal ein DAU Posting leisten :)

bye
-slz
 
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.