mor-gähn!
deine erste annahme ist richtig, das gehört in die "ast_sippeers" tabelle rein. und damit du jetzt weißt, was man da einträgt, genügt ein kurzer blick ins hilfe-center bei sipgate.de: da gibt's angenehmerweise einen eigenen punkt für die anbindung einer asterisk gleich auf der ersten seite im hilfe-center:
http://www.sipgate.de/faq/index.php?do=displayCategory&id=257
das ist übrigens meistens so mit sip providern, irgendwo auf deren webseite ist da eine beispielkonfig für asterisk, manchmal leichter und manchmal schwerer zu finden.
jetzt müssen wir diese beispielconfig gedanklich also so umbauen, dass sie nicht in der sip.conf eingetragen wird sondern in unserer datenbanktabelle eintragen können. leider ist es so, dass wir um eine änderung der sip.conf nicht rumkommen, da ja laut der beispiel config von sipgate scheinbar auch eintragungen im abschnitt "[general]" geändert bzw. hinzugefügt werden müssen. dazu poste ich hier mal die beispielconfig:
Code:
[general]
port = 5060
bindaddr = 0.0.0.0
context = sipout
qualify=no
disallow=all
allow=alaw
allow=ulaw
allow=g729
allow=gsm
allow=slinear
srvlookup=yes
register => SIPID:[email protected]/SIPID
[sipgate-out]
type=friend
insecure=very ; otherwise I get authentication errors
nat=yes
username=SIPID
fromuser=SIPID
fromdomain=sipgate.de
secret=SIPPW
host=sipgate.de
qualify=yes
canreinvite=no
wenn du dir jetzt mal den abschnitt "[general]" ansiehst, wird dir auffallen, dass es dort parameter gibt, die es auch in unseren datenbank tabellen, also bei den peers und den users gibt. hierzu ist es wichtig zu wissen, dass im "[general]" abschnitt der sip.conf die sip parameter definiert werden, die für alle peers und users gelten, aber nur, wenn es diesen parameter auch für den peer oder den user gibt. die ersten drei parameter sollten dir jetzt schon bekannt sein, trotzdem eine kurze beschreibung dieser:
port = 5060: das ist das udp port, auf den das sip protokoll der asterisk "horcht", dieser parameter wurde in der asterisk 1.4 auf "bindport" geändert, damit er bei allen voip protokollen innerhalb der configfiles der asterisk gleich heisst
bindaddr = 0.0.0.0: die ip adresse, auf den das sip protokoll der asterisk "horcht", "0.0.0.0" bedeutet hier "alle auf dem system verfügbaren adressen"
context = sipout: das ist der dialplan context, in welchen ein
eingehender anruf über sip geschickt wird
weiter mit den dir wahrscheinlich noch unbekannten parametern:
qualify = no: das besagt, dass generell kein user oder peer "überwacht" werden soll, das wird benötigt, wenn sich zwischen dem user oder dem peer und dem asterisk server eine oder mehrere firewalls befinden. sip funktioniert ja über UDP, es ist also ein sog. "verbindungsloses" protokoll. hier wird in regelmäßigen abständen eine art "SIP ping" zum user oder peer gesendet, der dazu verwendet wird, damit die firewalls die verbindung nicht sperren, denn normalerweise ist z.b. das udp port deines pcs, von dem ein paket durch die firewall ins internet gesendet wird, eine gewisse zeit durch deine firewall erreichbar bleibt. dieser vorgang heist "connection tracking" und normalerweise (abhängig von der firewall) ist das zw. 15 sekunden bis 3 minuten. das wäre aber ziemlich blöd, denn dann wäre ja deine asterisk nur genau diese zeit lang von aussen erreichbar (sipgate stellt ja auch anrufe auf deine asterisk zu, die von anderen sipgate teilnehmern kommen). der wert hier kann entwender "yes", "no" oder eine zahl sein, die die millisekunden angibt, in welchen abständen dieses "keepalive" paket gesendet werden soll.
disallow und
allow: damit werden die voice-codecs angegeben, die verboten ("disallow") bzw erlaubt ("allow") sind. hier ist die reihenfolge wichtig, denn der letzte eintrag der zutrifft, zählt: hast du die "disallow = all" zeile UNTER den allow zeilen, ist kein einziger codec erlaubt. bitte achte immer darauf, dass du
niemals "allow = all" definierst. zu den voice-codecs selbst aber später.
srvlookup: damit wird es möglich einen "echten" sip-uri zu wählen, der (als beispiel) so aussieht: "
[email protected]". du hast bis jetzt, wenn du von einem telefon ein anderes angerufen hast, auch bereits einen sip uri gewählt, z.B. "
[email protected]" (die ip adresse ist die der asterisk und wurde vom telefon hinten automatisch angehängt), allerdings nur mittels ip adressen. um bei unserem beispiel "
[email protected]" zu bleiben, so muss die asterisk zuerst die ip adresse von "domain.com" über DNS rausfinden. im www ist es jetzt aber so, dass diese meist "domain.com" auf die gleiche adresse wie "www.domain.com" verweist, aber dort läuft mit sehr hoher wahrscheinlichkeit kein sip server. deswegen ermöglicht dieser parameter der asterisk, dass sie beim DNS server der domain.com die folgende anfrage stellt: "gib mir bitte die ip adresse des sip server, der für deine domain zuständig ist". dieser parameter ist in den zakotel pakete per default auf "yes" gestellt.
register => ....: hiermit registriert sich die asterisk als friend beim sip server von sipgate wie ein telefon an deiner asterisk.
noch einige anmerkungen zu den voice-codecs: voice codecs sind komprimierungs-algorithmen, damit wir auch über bandbreiten-arme netzwerk verbindungen wie dem internet noch telefonieren können. hier gibt es welche, die mehr und andere die weniger bandbreite benötigen. G.711a ("alaw", wird in europa und asien verwendet) und G.711µ ("ulaw" in den USA) sind die "fettesten" codecs in der voip welt und der algorithmus ist frei verwendbar, also nicht rechtlich geschützt, eine sprachverbindung wird hier auf 64kbit komprimiert, G.729 wiederum verwendet 8 oder 9,2kbit, ist aber rechtlich geschützt. eigentlich alle telefon-hersteller haben aber lizenzen gekauft und geben diesen codec zu ihren telefonen dazu, deswegen kannst du ihn auch verwenden, willst du aber auf der asterisk diesen codec verwenden, musst du lizenzen für diesen codec bei digium kaufen. letztlich gibts da noch gsm, der auch frei verwendbar ist und ca. 15kbit benötigt. grundsätzlich gilt hier: je höher die bandbreite desto besser die sprachqualität, deswegen solltest du auch immer einen der beiden G.711-er verwenden, denn bei den heutigen bandbreiten sind ja 64kbit nichts, was eine internetleitung dicht machen würde.
2 b continued...