n'guild Thu 09 Sep, 2010 [20:47 UTC]
Menu

Asteriko

Asterisk configuration manager using Web based GUI (needs to be translated into English)
Services > Telephony
print


Le but d'asteriko est de permettre aux utilisateurs de générer des fichiers de configurations sans avoir à le editer. La solution d'asteriko est de stocker en base de données les informations concernant les utilisateurs et de générer ces fichier de configuration à intervals réguliers par l'intermédiaire d'une cron.

Le projet se résume donc en deux parties, une parties IHM -> BDD et l'autre BDD -> Fichiers de conf.

Les fichiers de configuration


Il est évident que la partie fichier de configuration nous impose de faire le choix d'un modèle de fonctionnement et d'organisation des différents utilisateurs dans ces fichiers de configurations.

Dans ce documents nous ne parlerons que des fichiers de configuration IAX, EXTENSIONS et VOICEMAIL qu constitue pour le moment une base suffisante de réflexion.

Fichier IAX.CONF


La définition des paramètres du protocol


Une première partie consiste à régler le protocole: Port, Ip, Jitter

[general]
bindaddr=0.0.0.0
bandwidth=low
echocancel=yes
jitterbuffer=yes
maxjitterbuffer=500
maxexcessbuffer=100
dropcount=3
tos=lowdelay
mailboxdetail=yes
language=fr
disallow=all
allow=gsm


Nb: La section ci-dessus reste à optimiser en ce qui concerne les paramètres du jitterbuffer. Des tests de mesures sont à prévoir.

La définition des users


Une fois les paramètres du protocol définis, on peut passer à la définition des users succeptibles de se connecter à Asterisk.

Deux types de peers sont à prévoire:
  • Le user standard
  • Le serveur Asterisk

Dans le cas du user il faut prévoir des sections comme suit par serveur

[NomDeMonServeur]
type=friend
host=dynamic
secret=MonMotDePasse


Nb: Dans le cas d'un peer en IP fixe, renseigner la section "host" par le nom de domaine voir ip du peer.

Dans le cas d'un user standard

Contrairement aux premiers essais menés, il est impératif que les users soient identifiés par des numéros plûtot que par des noms pour des raisons de simplification du fichier extensions.conf

La section doit donc resembler à la suivante :

[NumeroExtension]
type=friend
host=dynamic
secret=MonMotDePasse
context=Internationnal
callerid => ""MonPrenom MonNom" <NumeroExtension>
mailbox=NumeroExtension


Nb: En IAX il n'est pas possible de définir plus d'un seul context. Toutefois l'inclusion de contexts entre eux rend possible de définir très clairement la discrimination ou autrement dit les droits d'appel des utilisateurs.

L'exemple ci-dessus ne permet pas d'afiner la discrimination et de finir le ou les pays accessibles à cet utilisateur. Une liste de context et de groupe de contexts doit donc être défini pour donner l'accès à l'utilisateur à un pays en particulier ou à un groupe de pays (Europe, Asie, Usa, Europe fixe, Europe Mobile, France Fixe, France Mobile ...) ou à la totalité de l'internationnal (Comme l'exemple ci-dessus)

Le user de protection contre les login anonymes

Pour des raisons de sécurité, il est impératif de déclarer un user "guest". Cette opération permet de rejeter les logon sans username ni mot de passe. Ce user ne doit être associé à aucun context défini dans extensions.conf.

[guest]
type=user
host=dynamic


Fichier VOICEMAIL.CONF


La définition du comportement de la Voicemail


Comme pour IAX.CONF, la section général est succeptible d'être paramétrée pour permettre à l'administrateur de personnalisé l'envoi de voicemail (emetteur, corps du message...) mais aussi durrées d'enregistrement, d'archivage des voicemails...

[general]
; Default formats for writing Voicemail
;format=g723sf|wav49|wav
format=wav49|gsm|wav

fromstring=amnesia
serveremail=amnesia@no-log.org

; Should the email contain the voicemail as an attachment
attach=yes
; Maximum length of a voicemail message in seconds
;maxmessage=180
; Maximum length of greetings in seconds
;maxgreet=60
; How many miliseconds to skip forward/back when rew/ff in message playback
skipms=2000
; How many seconds of silence before we end the recording
maxsilence=10

; Silence threshold (what we consider silence, the lower, the more sensitive)
silencethreshold=128
; Max number of failed login attempts
maxlogins=3
envelope=no

;Corps du message

emailbody=Yo ${VM_NAME}:\n\nUn petit mot d'amour d'amnesia histoire qu'il n'oublie pas...\n\n
Le message est de ${VM_DUR}(numéro ${VM_MSGNUM}) minutes dans la boite ${VM_MAILBOX} et provient
de ${VM_CALLERID}, à la date du ${VM_DATE}. Prend le temps d'y jetter un coup d'oeil.\n\n
signé... j'ai déjà oublié :-)\n\n\nYo ${VM_NAME}:\n\n
A little love message from amnesia just to avoid it to forget...\n\n
The message is ${VM_DUR}(numéro ${VM_MSGNUM}) minutes long in mailbox ${VM_MAILBOX} and comes
from ${VM_CALLERID}, on ${VM_DATE}. Take time to have a look on it.\n\n
signed... I already forgot :-)\n

;
; You can override the default program to send e-mail if you wish, too
;
;mailcmd=/usr/sbin/sendmail -t
;
; Users may be located in different timezones, or may have different
; message announcements for their introductory message when they enter
; the voicemail system. Set the message and the timezone each user
; hears here. Set the user into one of these zones with the tz= attribute


Nb: Cette configuration est celle d'amnesia

La définition des décalages horaires


[zonemessages]
eastern=America/New_York|'vm-received' Q 'digits/at' IMp
central=America/Chicago|'vm-received' Q 'digits/at' IMp
central24=America/Chicago|'vm-received' q 'digits/at' H 'digits/hundred' M 'hours'


Nb: Cette section présente le seul endroit de toute la conf d'asterisk où on peut associer le décalage horaire associé à un utilisateur. Les lignes ci-dessus précise les TimeZones. Ces TimeZones sont normalement utilisés dans la section ci-dessous même si ce n'est pas le cas dans l'exemple choisi.

La définition des utilisateurs


[default]
MonEntension => MonCodeDePasse,MonPrenom MonNom,MonAdresse@MonDomaine.xx


Rien de bien sorcier la dedans sauf peut-être la conf des TimeZones qui à première vue ne parraissent pas si simples.

Fichier EXTENSIONS.CONF


Ce fichier est utilisé pour le règles de routage et de discrimination. Dans notre cas un numéro doit obligatoirement faire partie d'un context (internal, nationnal...) afin de permettre un utilisateur déclaré d'accéder aux numéros des contexts auxquels il appartient.

Configuration général du fichier


[general]
static=yes
writeprotect=no


Ces deux options permettre de restreindre l'accès au fichier de conf. Il est préférable de laisser ces deux options avec les valeurs ci-dessus si on veut pouvoir regénére le fichier.

La macro de routage d'un appel vers un agent


[macro-stdexten]
;
; Standard extension macro:
;${ARG1} - Extension (we could have used ${MACRO_EXTEN} here as well
;${ARG2} - Device(s) to ring IAX
;
exten => s,1,SetMusicOnHold(default)
exten => s,2,Dial(${ARG2},10) ; Ring the interface, 10 seconds maximum
exten => s,3,Voicemail(u${ARG1}) ; If unavailable, send to voicemail w/ unavail announce
exten => s,5,Hangup ; Hang them up.
exten => s,103,Voicemail(b${ARG1}) ; If busy, send to voicemail w/ busy announce
exten => s,104,Hangup ; Hang them up.


Cette macro permet d'essayer de joindre un extension ${ARG1} et en cas de non réponse ou d'occupation de basculer sur la messagerie vocale de l'utilisateur.

Le context des services


Dans notre exemple tous les services sont regroupés dans deux contextes [test-services] et [user-services]. Si à l'avenir on veut pouvoir dissocier les services pour n'en attribuer que un parmis plusieurs à un utilisateur, il faudra créer un ou plusieurs groupes de services afin d'effectuer la discrimination

C'est aussi ce contexte qui va définir le script du server vocal interactif (SVI) permettant l'acceuil de personnes non enregisrtées (appels arrivant par la cart ZAP). Une réflexion doit être menée pour définir la façon dont on doit donner accès au reste des services et context pour ce type d'utilisateurs. Un acces pas login/mot de passe pourrait petre une solution si les fonctions d'acces à la base de dnnées sont suffisants.

[tests-services]

;
; Create an extension, 600, for dialing the
; Asterisk demo.
;

exten => 600,1,Playback(demo-abouttotry); Let them know what's going on
exten => 600,2,Dial(IAX2/guest@misery.digium.com/s@default) ; Call the Asterisk demo
exten => 600,3,Playback(demo-nogo) ; Couldn't connect to the demo site
exten => 600,4,Goto(s,6) ; Return to the start over message.

;
; Create an extension, 601, for evaulating echo latency.
;
exten => 601,1,Playback(demo-echotest) ; Let them know what's going on
exten => 601,2,Echo ; Do the echo test
exten => 601,3,Playback(demo-echodone) ; Let them know it's over
exten => 601,4,Goto(s,6) ; Start over

[user-services]
;
; Give voicemail at extension 700
;
exten => 700,1,VoicemailMain
exten => 700,2,Hangup

;
; Or a conference room (you'll need to edit meetme.conf to enable this room)
;
exten => 800,1,MeetMeCount(1234)
exten => 800,2,Meetme,1234


Un contexte pourra même être créé pour donner acces à tous les services d'un coup.

[All-Services]
include => user-services
include => tests-services


Le context des appels entrants


Ce context est réservé aux appels entrants effectués par l'intermédiaire de l'interface Zaptel ou H323. Il est donc dans un premier temps restreint aux services. Il n'est pas question pour le moment de donner accès au reste du plan de numérotation sans identification du user. Ce context part du principe que l'appelant connait l'existance d'un SVI qui se déclenche pendant les 4 secondes avant le transfert vers une extension par défaut.
Cet exemple simule donc un SVI caché donnat accès aux services mais qui donne l'impression d'être un répondeur.Une version purement SVI doit donc être développée.

[menu]
include => All-Services

exten => s,1,Wait,15
exten => s,2,Answer
exten => s,3,DigitTimeout,2 ; Set Digit Timeout to 5 seconds
exten => s,4,ResponseTimeout,4 ; Set Response Timeout to 10 seconds

exten => #,1,Dial(IAX2/MyIaxUser:MyIaxPassword@MyDomainName/MyExtension@MyContext) ;Used to ring a specific extension if no key is pressed by the user

exten => t,1,Goto(#,1) ; If they take too long goto to previous line to route call to any extension
exten => i,1,Playback(invalid) ; "That's not valid, try again"

exten => _XXX,1,Dial(IAX2/${EXTEN}@All-Services)

[menu-SVI]
exten => s,1,Wait,15
exten => s,2,Answer
exten => s,3,DigitTimeout,2 ; Set Digit Timeout to 5 seconds
exten => s,4,ResponseTimeout,4 ; Set Response Timeout to 10 seconds
exten => s,5,BackGround(IVR_VoiceGuide)

exten => 1,1,Goto($SVI1,1) ;If key 1 is pressed go to extension SVI1
exten => 2,1,Goto($SVI2,1) ;If key 1 is pressed go to extension SVI2
exten => 3,1,Goto($SVI3,1) ;If key 1 is pressed go to extension SVI3

exten => t,1,Goto(s,5) ; If they take too long goto to previous line to route call to any extension
exten => i,1,Playback(invalid) ; "That's not valid, try again"


Le context des users standards ou context [Internal]


[Internal]

exten => _5XX,1,GotoIf($"${EXTEN}" = "506"?MyContext,MyExtension,1)
exten => _5XX,2,Playback(transfer,skip)
exten => _5XX,3,Macro(stdexten,${EXTEN},IAX2/${EXTEN})
include => All-Services


Nb: Ici on considère que les users internes sont tous déclarés dans IAX.CONF par des user commençant par 5 et qui sont sur 3 digits. Le user 506 a également programmé que tous les appels arrivant sur son poste soient redirigés vers le numéro d'un context bien précis. Pour d'autres protocoles que IAX, il est possible d'etendre la regle en definissant differentes plages d'extensions en fonction du protocole. Par exemple 5XX pour IAX, 4XX pour SIP et 3XX pour le H323.

Le context des users standards ou context [Internationnal]


Dans notre postulat de base du fichier iax.conf, chaque user faisait parti d'un ou plusieurs contextes. Dans notre cas je prend parti de dire que toutes les destinations internationnales sont organisées en Continents, puis pays et finalement par asterisk boxes du pays.

;Contexte incluant tous les continents
[Internationnal]
include => Internal
include => Europe
include => Asia
include => Usa
include => Africa
include => Russia

;Contexte incluant tous les pays d'europe où des serveurs asterisk sont présents
[Europe]
include => Internal
include => France
include => UK
include => Italy
include => Germany
include => Spain

;Contexte incluant les asterisk boxes présentes en France
[France]
include => Internal

;Serveur asterisk de Loïc sur la carte ZapTel en 0033 entre 00h00 et 04h00. Le serveur de loic est registred on peut donc utilisé le nom d'enregistrement.
exten => _00033.,1,GotoIfTime(00:00-4:00|mon-fri|*|*?France,${EXTEN},3)
;On attend 5 secondes la réponse du site distant.
exten => _00033.,2,Dial(IAX2/user:password@IaxRegistredName/${EXTEN}@France,5)

;Si Loïc n'est pas dispo serveur asterisk de Tom sur la carte ZapTel en 0033 entre 00h00 et 04h00. Le serveur de tom n'est pas enregistré on doit donc utiliser un nom de domaine.
exten => _00033.,3,GotoIfTime(00:00-4:00|mon-fri|*|*?France,${EXTEN},5)
;On attend 5 secondes la réponse du site distant.
exten => _00033.,4,Dial(IAX2/user:password@domaine2.fr/${EXTEN}@France,5)

Si Tom n'est pas dispo serveur asterisk de Mose sur la carte ZapTel en 0033 entre 00
00 et 04:00

exten => _00033.,5,GotoIfTime(00:00-4:00|mon-fri|*|*?France,${EXTEN},7)
;On attend 5 secondes la réponse du site distant.
exten => _00033.,6,Dial(IAX2/user:password@domaine3.fr/${EXTEN}@France,5)

;Si aucun des trois sites alors joue un guide d'encombrement
exten => _00033.,7,Answer
exten => _00033.,8,Playtones(congestion)
exten => _00033.,9,Wait(5)
exten => _00033.,10,StopPlaytones
exten => _00033.,11,Hangup

;Définition des extensions locales de Loïc qui ne sont pas des users d'amnesia
;Pour que ca fonctionne, Loïc doit déclarer ses extensions dans le context 'France' et doivent commencer par 1 suivi de 3 digits et Tom par 3 suivi de 3 digits
exten => _331XXX,1,Dial(IAX2/user:password@domaine1.fr/${EXTEN:2}@France)
exten => _333XXX,1,Dial(IAX2/user:password@domaine2.fr/${EXTEN:2}@France)

;En cas de timeout sur les extensions locales on joue un guide d'encombrement
exten => t,1,Answer
exten => t,2,Playtones(congestion)
exten => t,3,Wait(5)
exten => t,4,StopPlaytones
exten => t,5,Hangup

[UK]
include => Internal
;Serveur asterisk de Damian
exten => _00044.,3,Dial(IAX2/user:password@domaine.co.uk/${EXTEN}@default)

;Définition des extensions locales de Damian qui ne sont pas des users d'amnesia
;Pour que ca fonctionne, Damian doit déclarer ses extensions dans le context default et doivent commencer par 2 suivi de 3 digits
exten => _2XXX,1,Dial(IAX2/user:password@domaine.co.uk/${EXTEN}@default)


Redirection des appels sur des serveurs dans un LAN utilisant du NAT


L'exemple de routage entre les peers de loïc, tom et mose montre deux alternatives pour le routage des appels. Loïc utilise du NAT dans sont LAN avec un serveur Asterisk ainsi qu'un client IAX.
Ce que vous devez savoir c'est que le IAX utilise le port 4569 par defaut pour le premier client ou serveur (si un autre port n'a pas ete precise dans le fichier iax.conf). Si ensuite un autre client ou serveur se lance, il pourra utiliser le port 14569 par exemple.
Imaginez que vous avez definit une regle de routage sur votre routeur qui forward les packets en UDP 4569 depuis votre IP publique vers votre Asterisk box. Que se passe-t-il si votre Asterisk box demarre apres votre client IAX?
Dans ce cas precis, n'utilisez pas de port forwarding sur votre routeur mais preferez enregistrer votre asterisk box sur un serveur distant de cette maniere il pourra vous joindre sans avoir a preciser ni port ni nom de domaine et vous pourrez demarrer votre client IAX ainsi que votre asterisk box dans l'ordre aue vous voulez.
Si vous voulez aue des clients externes puissent joindre votre asterisk box, il est en effet problematiaue de ne pas definir de port forwarding. Il vous suffit donc de preciser un port specifique dans iax.conf, ensuite de definir le port forwarding sur ce port sur votre routeur et de demader a vos clients d'utiliser ce port specifique.
Si ce n'est pas possible, faites tres attention dans de demarre votre Asterisk box avant un quelconque client IAX dans votre LAN.
Le premier des deux peers prendra le port 4569 alors que le suivant poura prendre le port 14569 c'est le protocole IAX qui dicte cette regle.
Il n'est donc pas nécessaire de définir une regle de NAT sur le routeur. Il faut en revanche enregistrer le serveur asterisk de Loïc (avec le mot clé register dans la section genereal de iax.conf) afin de bien pouvoir dissocier les deux peers. En revanche Tom ayant dédier le host domane2.fr au IAX il n'est pas nécessaire de l'enregistrer.

Ordre d'imbrication des contexts


L'ordre d'imbrication des contexts est tres important dans l'écriture du fichier de configuration. En effet, principalement en raison des débordements il est obligatoire de restecter un certain ordre afin d'éviter les débordements non justifiés.

L'ordre à utiliser dans notre cas est le suivant:

[macro-stdexten]
[Internationnal]
[Europe]
[France]
[UK]


ajouter les autres pays d'europe dans le même ordre que celui défini dans le context [Europe]

[Asia]
Ajouter les autres continents dans le même ordre que celui défini dans [Internationnal]

[Internal]

[All-Services]

[tests-services]

[user-services]

Fichier ZAPATA.CONF


[trunkgroups]

[channels]
language=fr
context=menu ;Defined in extensions.conf
rxwink=300

usedistinctiveringdetection=no
usecallerid=no
hidecallerid=yes
callwaiting=yes

usecallingpres=no
callwaitingcallerid=no

threewaycalling=yes
transfer=yes
cancallforward=yes
callreturn=yes

echocancel=yes
echocancelwhenbridged=yes

rxgain=0.0
txgain=0.0

group=1
callgroup=1
pickupgroup=1

immediate=no
amaflags=billing

busydetect=yes
busycount=4

callprogress=no
progzone=fr

signalling=fxs_ks
context=menu
channel => 1


La base de données


La base de données est intimement liée au format du fichier. Pour homogeneiser les données communes à plusieurs ficheirs certaies informations vont donc pouvoir être regroupées dans une même table.

Schéma relationnel


Le schéma relationnel de la base de données sera le suivant. Chaque table est ensuite détaillée dans les sections suivantes.

Attention ce schéma n'est pas à jour et ne correspond plus aux tables suivantes.



La table "ast_uers"


Définiton de la table

Cette table est la clé de voute du schéma relationnelle d'asteriko.

ast_users
Field NameField TypePrecisionCommentaire
userIdint8Numéro unique d'enregistrement
userLoginvarchar255Login au site web d'asteriko
userPasswordvarchar32Mot de passe pour cet utilisateur
userMailboxPasswordvarchar4Mot de passe pour la messagerie
userEmailvarchar255Adresse mail de l'utilisateur
userNamevarchar255Prénom de l'utilisateur
userGroupIdint8Groupe d'utilisateur auxquel l'utilisateru appartient
userLastLoginint11Heure de dernière connexion
userRegistrationint11L'utilisateur est il logué sur le site asteriko
userLanguagevarchar3Langue parlée par l'utilisateur
userTimeZonevarchar10Faisceau horaire de l'utilisateur
userExtensionvarchar10Numéro unique d'extention du plan de numérotation
userRedirectGroupIdint8Si l'utilisateur desire renvoyer ses appels sur un autre numero il peut en preciser le context auquel il appartient
userRedirectExtvarchar20Permet a l'utilisateur de definir vers quelle extension les appels doivent etre rediriges. Si aucun context n'est precise, il peut preciser le protocol.
userServIdint8Type de protocol utilisé par cet utilisateur
userIpvarchar15Adresse IP de l'utilisateur. Nom de domaine, "dynamic" ou IP sont supportés
userStatuschar1Etat du de l'utilisateur. 'y' pour actif ou 'n' inactif


Script de création


La table "ast_groups"


Définiton de la table

Cette table permet d'associer aux utlisateurs ou tout objet faisant référence à un "context". En effet, les context au sens Asterisk et les groups sont très similaires c'est pourquoi ils ont été regroupés.

ast_groups
Field NameField TypePrecisionCommentaire
groupIdint8numéro unique d'enregistrement
groupNamevarchar255Nom du groupe. Correspond au context
groupDescriptiontextN/ADescription du groupe
groupAccessTimeStartvarchar5Heure de début d'acces à ce groupe.
groupAccessTimeStopvarchar5Heure de fin d'acces à ce groupe.
groupAccessDaysvarchar60Jours de la semaine authorisés pour ce groupe. Chaque jour est separe par un ";" et est sur 3 caracteres.
groupAccessMonthvarchar20Mois authorisés pour ce groupe.
groupAccessYearvarchar20Mois de la semaine authorisés pour ce groupe.
groupStatuschar1Etat du groupe. 'y' pour actif ou 'n' inactif


Script de création


La table "ast_parent_groups"


Définiton de la table

Cette table permet de créer des liens entre les groupes. Parceque les groupes sont en fait des 'contexts' il est très utile de pouvoir les inclure les uns dans les autres.

ast_parent_groups
Field NameField TypePrecisionCommentaire
parentGroupId int8Numéro unique d'enregistrement
parentChildGroupIdint8L'id du groupe contenant le ou les autres
parentParentGroupId int8Id du groupe à inclure


Script de création


La table "ast_hosts"


Définiton de la table

Cette table est utilisée pour définir tres precisement les hosts en relation avec l'installation asterik. Les hosts en relation sont soi utilisés pour définir les serveurs asterisk à enregistrer soi pour défnir les droits d'acces des autres serveurs asterisk sur celui-ci. Cette table idéalement prévue pour des interconnexions en IAX pourra être étendue aux autres protocoles en précisant le service associé par l'intermédiaire du champ hostsServId.

ast_hosts
Field NameField TypePrecisionCommentaire
hostsIdint8Numéro unique d'enregistrement
hostsNamevarchar255Nom du host
hostPortint4Numero de port utilise pour joindre le host
hostsLoginvarchar255Login utilisé par ce host pour se connecter ou login utilisé pour se connecter au host.
hostsPasswordvarchar32Mot de passe associé au login
hostsGroupIdint8Context auquel se rattache cet host
hostsServIdint8Type de protocole correspondant a ce host
hostsRegistredchar1S'il s'agit d'une connexion du server asterik vers un autre. Ce champ peut prendre les valeurs 'y' ou 'n'
hostsAccessTimeStartvarchar5Heure de début d'acces authorisé au host Ne convient pas pour les hosts registred
hostsAccessTimeStopvarchar5Heure de fin d'acces authorisé au host Ne convient pas pour les hosts registred
hostsAccessDaysvarchar60Liste des jours authorisés pour accéder à ce host. Ne convient pas pour les hosts registred. Chaque jour est separe par un ";" et est sur 3 caracteres.
hostsAccessMonthvarchar20Mois authorisés pour accédes à ce host. Ne convient pas pour les hosts registred
hostsAccessYearvarchar20Années authorisées pour accéder à ce host Ne convient pas pour les hosts registred


Script de création


La table "ast_iax"


Définiton de la table

Cette table est désormais obselete.

La table "ast_services"


Définiton de la table

Cette table permet de définir les services disponibles. Ces services peuvent etre soit des protocoles comme IAX ou des service utilisateurs comme les Voice-Mails.

ast_services
Field NameField TypePrecisionCommentaire
servIdint8Numéro uniqe d'enregistrement
servNamevarchar40nom du service IAX, SIP, H323, ZAP, Voice-Mails...
servIsTrunkenumN/ACe service est il un protocole. Enabled ou Disabled
servStatechar1Etat du service. 'y' pour actif ou 'n' pour inactif


Script de création


La table "ast_services_options"


Définiton de la table

Cette table permet de définir les options propres à chaque service disponible.

ast_services_options
Field NameField TypePrecisionCommentaire
servOptIdint8Numéro unique d'enregistrement
servIdint8Service auquel l'option appartient
servOptionNamevarchar40Nom de l'option.
servOptionValuetextN/AValeur de l'option


Script de création


La table "ast_conf_rooms"


Définiton de la table

Cette table permet de définir les conference rooms ainsi que les mots de passe et heures d'ouvertures des conference rooms.

ast_conf_rooms
Field NameField TypePrecisionCommentaire
confIdint8Numéro unique d'enregistrement
confNumbervarchar10Numéro unique de conference room
confPasswordvarchar10Mot de passe d'accès à la conference room (optionnel)
confAccessTimeStartvarchar5Heure d'ouveture de la conf room. hh:mm
confAccessTimeStopvarchar5heure de fin de la conf room. hh:mm
confAccessDaysvarchar60Jours de la semaine ou la conf romm est accessible. Chaque jour est separe par un ";" et est sur 3 caracteres.
confAccessMonthvarchar20Mois où la conf room est accessible
confAccessYearvarchar20Année où la conf room est accessible
confStatechar1Etat de la conférence. 'y' pour actif ou 'n' inactif


Script de création


La table "ast_trunks"


Définiton de la table

Cette table permet de definir des faisceaux ou trunks definisant les liens entre plusieurs serveurs et quels sont les numeros ou extensions permettant de les utiliser.

ast_trunks
Field NameField TypePrecisionCommentaire
trunkIdint8Numéro unique d'enregistrement
trunkNamevarchar20Nom du trunk
trunkGroupIdint8Group ou context auquel le trunk appartient
trunkServIdint8Type de protocole utiliser pour ce faisceau
trunkAccessTimeStartvarchar5Heure d'ouveture du trunk. hh:mm
trunkAccessTimeStopvarchar5heure de fin du trunk. hh:mm
trunkAccessDaysvarchar60Jours de la semaine ou le trunk est accessible. Chaque jour est separe par un ";" et est sur 3 caracteres.
trunkStatechar1Etat du trunk. 'y' pour actif ou 'n' inactif


Script de création


Contributors to this page: loic91 points  , hina26 points  and mose904 points  .
Page last modified on Sunday 07 November, 2004 [19:02:10 UTC] by loic91 points .

List of attached files
  name desc uploaded size >
1 : 3 icon RelationalScheme.jpg Fri 08 Oct, 2004 [15:58 UTC] by loic 72.86 Kb 8253

Posted messages

Hide all
author message
tom1563 points 
nice job loic
on: Mon 04 Oct, 2004 [18:57 UTC] score: 1.00
and so nicely designed :)


author message
loic91 points 
Re : nice job loic
on: Tue 05 Oct, 2004 [10:43 UTC] score: 0.00
Thanks but need to be translated and can see the translation tab on top of the document...




Search
in:
Search Wiki PageName
[ Execution time: 1.67 secs ]   [ Memory usage: 14.97MB ]   [ 61 database queries used ]   [ GZIP Enabled ]   [ Server load: 0.17 ]
Last update from CVS: Friday 26 October, 2007 [15:59:54 UTC]