Mod skinny/Development
From FreeSWITCH Wiki
Contents |
Usefull documentation
Docs:
- Skinny Call Control Protocol (SCCP) - Fragment of a VoIP course dealing with SCCP, with sample captures
- Wireshark's skinny dissector
- SCCP Call Flows from Cisco ATA 186 and Cisco ATA 188 Analog Telephone Adaptor Administrator's Guide (SCCP)
- Call states sent to SCCP endpoints by Cisco CallManager
- Skinny Call Control Protocol (SCCP) - Cisco Systems
Existing implementations:
- Asterisk's chan_skinny.c
- Asterisk's out-of tree chan-sccp
- Asterisk's out-of tree chan_sccp2
- Asterisk's out-of tree chan_sccp-b further development of chan_sccp2
- FreeSWITCH's mod_skinny (MODENDP-293)
TODO
(bold means Important missing features ; this list doesn't mean that we are working on it :-P )
- Softkeys/Stimulus:
- CFwdAll/ForwardAll, CFwdBusy/ForwardBusy, CFwdNoAnswer/ForwardNoAnswer (see FS-3048)
- /AutoAnswer, /AutoAnswerRelease
- /ServiceURL
- /Conference, /MeetMeConference, Join, MeetMeConfrn
- Park/CallPark, CallPickUp/CallPickup, GrpCallPickUp/GroupCallPickup
- Info
- Confrn
- DND (DoNotDisturb) (see FS-3047)
- ... (lot more)
- Per line:
- no-answer-duration
- Ring policies: on-idle, on-active (when any line on the phone has a call in progress)
- Ring policies: call-pickup-group/on-idle, call-pickup-group/on-active
- busy-trigger (number of active calls before busy)
- Features:
- Improved presence:
- Message Waiting indicator (MWI) improvements (how to handle multiple lines?)
- Shared Line Appearance common to mod_sofia (SCA)
- Busy Lamp Field
- Better behavior (when: other leg busy, ...)
- IPMA (manager-assistant)
- Extension mobility
- Soft-key template and Soft-key sets configurable via XML
- Bypass Media (help needed)
- Codec Negotiation (help needed)
- Dynamic SpeedDials (need more info on this)
- Other platforms than i386: amd64 (need more testing), ppc (nothing done), ...
- Support for Smart Phone Control Protocol (SPCP) info for CP-500 phones and the SPA525 phone
- Improved presence:
- Administration and management:
- LDAP schema
- xml_curl module to read from LDAP (prototype to be commited)
- GOsa plugin and/or FreePBX module
- Use FUSE to automagicaly create files on TFTP request
- Whisper Coaching
- Custom Events:
- ...
- API Commands:
skinny profile <profile_name> device <device_name> send SelectSoftKeysMessage [...] skinny profile <profile_name> device <device_name> send CallInfo [...] skinny profile <profile_name> device <device_name> send StartTone <tone> skinny profile <profile_name> device <device_name> send StopTone skinny status profile <profile_name> line <line_name> skinny status profile <profile_name> device <device_name> buttons [<button_type>]
Skinny Message list
| Message | Code | Status in mod_skinny |
|---|---|---|
| Station -> Callmanager | ||
| KeepAliveMessage | 0x0000 | DONE |
| RegisterMessage | 0x0001 | DONE |
| IpPortMessage | 0x0002 | DONE |
| KeypadButtonMessage | 0x0003 | DONE |
| EnblocCallMessage | 0x0004 | DONE |
| StimulusMessage | 0x0005 | DONE |
| OffHookMessage | 0x0006 | DONE |
| OnHookMessage | 0x0007 | DONE |
| HookFlashMessage | 0x0008 | |
| ForwardStatReqMessage | 0x0009 | DONE |
| SpeedDialStatReqMessage | 0x000A | DONE |
| LineStatReqMessage | 0x000B | DONE |
| ConfigStatReqMessage | 0x000C | DONE |
| TimeDateReqMessage | 0x000D | DONE |
| ButtonTemplateReqMessage | 0x000E | DONE |
| VersionReqMessage | 0x000F | DONE |
| CapabilitiesResMessage | 0x0010 | DONE |
| MediaPortListMessage | 0x0011 | |
| ServerReqMessage | 0x0012 | |
| AlarmMessage | 0x0020 | DONE |
| MulticastMediaReceptionAck | 0x0021 | |
| OpenReceiveChannelAck | 0x0022 | DONE |
| ConnectionStatisticsRes | 0x0023 | |
| OffHookWithCgpnMessage | 0x0024 | |
| SoftKeySetReqMessage | 0x0025 | DONE |
| SoftKeyEventMessage | 0x0026 | DONE |
| UnregisterMessage | 0x0027 | DONE |
| SoftKeyTemplateReqMessage | 0x0028 | DONE |
| RegisterTokenReq | 0x0029 | |
| MediaTransmissionFailure | 0x002A | |
| HeadsetStatusMessage | 0x002B | DONE |
| MediaResourceNotification | 0x002C | |
| RegisterAvailableLinesMessage | 0x002D | DONE |
| DeviceToUserDataMessage | 0x002E | DONE |
| DeviceToUserDataResponseMessage | 0x002F | DONE |
| UpdateCapabilitiesMessage | 0x0030 | |
| OpenMultiMediaReceiveChannelAckMessage | 0x0031 | |
| ClearConferenceMessage | 0x0032 | |
| ServiceURLStatReqMessage | 0x0033 | DONE |
| FeatureStatReqMessage | 0x0034 | DONE |
| CreateConferenceResMessage | 0x0035 | |
| DeleteConferenceResMessage | 0x0036 | |
| ModifyConferenceResMessage | 0x0037 | |
| AddParticipantResMessage | 0x0038 | |
| AuditConferenceResMessage | 0x0039 | |
| AuditParticipantResMessage | 0x0040 | |
| DeviceToUserDataVersion1Message | 0x0041 | DONE |
| DeviceToUserDataResponseVersion1Message | 0x0042 | DONE |
| DialedPhoneBookMessage | 0x0048 | Incomplete |
| AccessoryStatusMessage | 0x0049 | DONE |
| ? | 0x004A | |
| Callmanager -> Station | ||
| RegisterAckMessage | 0x0081 | DONE |
| StartToneMessage | 0x0082 | DONE |
| StopToneMessage | 0x0083 | DONE |
| SetRingerMessage | 0x0085 | DONE |
| SetLampMessage | 0x0086 | DONE |
| SetHookFlashDetectModeMessage | 0x0087 | |
| SetSpeakerModeMessage | 0x0088 | DONE |
| SetMicroModeMessage | 0x0089 | |
| StartMediaTransmission | 0x008A | DONE |
| StopMediaTransmission | 0x008B | DONE |
| StartMediaReception | 0x008C | |
| StopMediaReception | 0x008D | |
| CallInfoMessage | 0x008F | DONE |
| ForwardStatMessage | 0x0090 | Incomplete |
| SpeedDialStatMessage | 0x0091 | DONE |
| LineStatMessage | 0x0092 | DONE |
| ConfigStatMessage | 0x0093 | DONE |
| DefineTimeDate | 0x0094 | DONE |
| StartSessionTransmission | 0x0095 | |
| StopSessionTransmission | 0x0096 | |
| ButtonTemplateMessage | 0x0097 | DONE |
| VersionMessage | 0x0098 | DONE |
| DisplayTextMessage | 0x0099 | |
| ClearDisplay | 0x009A | |
| CapabilitiesReqMessage | 0x009B | DONE |
| EnunciatorCommandMessage | 0x009C | |
| RegisterRejectMessage | 0x009D | DONE |
| ServerResMessage | 0x009E | |
| Reset | 0x009F | DONE |
| KeepAliveAckMessage | 0x0100 | DONE |
| StartMulticastMediaReception | 0x0101 | |
| StartMulticastMediaTransmission | 0x0102 | |
| StopMulticastMediaReception | 0x0103 | |
| StopMulticastMediaTransmission | 0x0104 | |
| OpenReceiveChannel | 0x0105 | DONE |
| CloseReceiveChannel | 0x0106 | DONE |
| ConnectionStatisticsReq | 0x0107 | |
| SoftKeyTemplateResMessage | 0x0108 | DONE |
| SoftKeySetResMessage | 0x0109 | DONE |
| SelectSoftKeysMessage | 0x0110 | DONE |
| CallStateMessage | 0x0111 | DONE |
| DisplayPromptStatusMessage | 0x0112 | DONE |
| ClearPromptStatusMessage | 0x0113 | DONE |
| DisplayNotifyMessage | 0x0114 | |
| ClearNotifyMessage | 0x0115 | |
| ActivateCallPlaneMessage | 0x0116 | DONE |
| DeactivateCallPlaneMessage | 0x0117 | |
| UnregisterAckMessage | 0x0118 | DONE |
| BackSpaceReqMessage | 0x0119 | DONE |
| RegisterTokenAck | 0x011A | |
| RegisterTokenReject | 0x011B | |
| StartMediaFailureDetection | 0x011C | |
| DialedNumberMessage | 0x011D | DONE |
| UserToDeviceDataMessage | 0x011E | DONE |
| FeatureStatMessage | 0x011F | DONE |
| DisplayPriNotifyMessage | 0x0120 | DONE |
| ClearPriNotifyMessage | 0x0121 | |
| StartAnnouncementMessage | 0x0122 | |
| StopAnnouncementMessage | 0x0123 | |
| AnnouncementFinishMessage | 0x0124 | |
| NotifyDtmfToneMessage | 0x0127 | |
| SendDtmfToneMessage | 0x0128 | |
| SubscribeDtmfPayloadReqMessage | 0x0129 | |
| SubscribeDtmfPayloadResMessage | 0x012A | |
| SubscribeDtmfPayloadErrMessage | 0x012B | |
| UnSubscribeDtmfPayloadReqMessage | 0x012C | |
| UnSubscribeDtmfPayloadResMessage | 0x012D | |
| UnSubscribeDtmfPayloadErrMessage | 0x012E | |
| ServiceURLStatMessage | 0x012F | DONE |
| CallSelectStatMessage | 0x0130 | |
| OpenMultiMediaChannelMessage | 0x0131 | |
| StartMultiMediaTransmission | 0x0132 | |
| StopMultiMediaTransmission | 0x0133 | |
| MiscellaneousCommandMessage | 0x0134 | |
| FlowControlCommandMessage | 0x0135 | |
| CloseMultiMediaReceiveChannel | 0x0136 | |
| CreateConferenceReqMessage | 0x0137 | |
| DeleteConferenceReqMessage | 0x0138 | |
| ModifyConferenceReqMessage | 0x0139 | |
| AddParticipantReqMessage | 0x013A | |
| DropParticipantReqMessage | 0x013B | |
| AuditConferenceReqMessage | 0x013C | |
| AuditParticipantReqMessage | 0x013D | |
| UserToDeviceDataVersion1Message | 0x013F | DONE |
| FlowControlCommandMessage | 0x0141 | |
| ? | 0x0142 | |
| ? | 0x0143 | |
| ? | 0x0144 | |
| DisplayDynamicPromptStatusMessage | 0x0145 | |
| FeatureStatAdvancedMessage | 0x0146 | |
| LineStatDynamicMessage | 0x0147 | |
| ServiceURLStatDynamicMessage | 0x0148 | |
| SpeedDialStatDynamicMessage | 0x0149 | |
| CallInfoDynamicMessage | 0x014A | |
| DialedPhoneBookAckMessage | 0x0152 | Incomplete |
| ? | 0x0153 | |
| StartMediaTransmissionAck | 0x0154 | |
| ExtensionDeviceCaps | 0x0159 | |
| XMLAlarmMessage | 0x015A | DONE |
| SPARegisterMessage | 0x8000 | |
See also
- mod_skinny: User documentation
- (archive) mod_skinny/Development/Initial_Roadmap

