Inhaltsverzeichnis

std.net.sip

SIP (Session Initiation Protocol, RFC 3261) ist das Standardsignalisierungsprotokoll für VoIP-Telefonie und Multimedia-Sessions. SIP regelt Aufbau, Änderung und Abbau von Kommunikationssitzungen — die eigentliche Medienübertragung erfolgt separat via RTP. Die Unit implementiert REGISTER, OPTIONS, INVITE-Sequenzen sowie das vollständige Parsing und den Aufbau von SIP-Nachrichten mit allen Status-Codes (1xx Provisional, 2xx Success, 3xx Redirect, 4xx–6xx Error).

Einsatzbereiche sind VoIP-Clients, Telefonanlagen-Integration (PBX), Softphones, SIP-Trunking-Monitoring und automatisierte Tests von SIP-Infrastruktur.


Imports


Konstanten

Name Typ Wert Sichtbarkeit
SIP_PORT int64 5060 pub
SIPS_PORT int64 5061 pub
SIP_METHOD_REGISTER int64 1 pub
SIP_METHOD_INVITE int64 2 pub
SIP_METHOD_ACK int64 3 pub
SIP_METHOD_BYE int64 4 pub
SIP_METHOD_CANCEL int64 5 pub
SIP_METHOD_OPTIONS int64 6 pub
SIP_METHOD_MESSAGE int64 7 pub
SIP_METHOD_SUBSCRIBE int64 8 pub
SIP_METHOD_NOTIFY int64 9 pub
SIP_METHOD_PUBLISH int64 10 pub
SIP_METHOD_INFO int64 11 pub
SIP_METHOD_PRACK int64 12 pub
SIP_METHOD_UPDATE int64 13 pub
SIP_METHOD_REFER int64 14 pub
SIP_TRYING int64 100 pub
SIP_RINGING int64 180 pub
SIP_CALL_IS_BEING_FORWARDED int64 181 pub
SIP_QUEUED int64 182 pub
SIP_SESSION_PROGRESS int64 183 pub
SIP_OK int64 200 pub
SIP_ACCEPTED int64 202 pub
SIP_MULTIPLE_CHOICES int64 300 pub
SIP_MOVED_PERMANENTLY int64 301 pub
SIP_MOVED_TEMPORARILY int64 302 pub
SIP_USE_PROXY int64 305 pub
SIP_ALTERNATIVE_SERVICE int64 380 pub
SIP_BAD_REQUEST int64 400 pub
SIP_UNAUTHORIZED int64 401 pub
SIP_PAYMENT_REQUIRED int64 402 pub
SIP_FORBIDDEN int64 403 pub
SIP_NOT_FOUND int64 404 pub
SIP_METHOD_NOT_ALLOWED int64 405 pub
SIP_NOT_ACCEPTABLE int64 406 pub
SIP_PROXY_AUTHENTICATION_REQUIRED int64 407 pub
SIP_REQUEST_TIMEOUT int64 408 pub
SIP_GONE int64 410 pub
SIP_REQUEST_ENTITY_TOO_LARGE int64 413 pub
SIP_REQUEST_URI_TOO_LONG int64 414 pub
SIP_UNSUPPORTED_MEDIA_TYPE int64 415 pub
SIP_UNSUPPORTED_URI_SCHEME int64 416 pub
SIP_BAD_EXTENSION int64 420 pub
SIP_EXTENSION_REQUIRED int64 421 pub
SIP_INTERVAL_TOO_BRIEF int64 423 pub
SIP_TEMPORARILY_UNAVAILABLE int64 480 pub
SIP_CALL_TRANSACTION_DOES_NOT_EXIST int64 481 pub
SIP_LOOP_DETECTED int64 482 pub
SIP_TOO_MANY_HOPS int64 483 pub
SIP_ADDRESS_INCOMPLETE int64 484 pub
SIP_AMBIGUOUS int64 485 pub
SIP_BUSY_HERE int64 486 pub
SIP_REQUEST_TERMINATED int64 487 pub
SIP_NOT_ACCEPTABLE_HERE int64 488 pub
SIP_REQUEST_PENDING int64 491 pub
SIP_UNDECIPHERABLE int64 493 pub
SIP_INTERNAL_SERVER_ERROR int64 500 pub
SIP_NOT_IMPLEMENTED int64 501 pub
SIP_BAD_GATEWAY int64 502 pub
SIP_SERVICE_UNAVAILABLE int64 503 pub
SIP_SERVER_TIME_OUT int64 504 pub
SIP_VERSION_NOT_SUPPORTED int64 505 pub
SIP_MESSAGE_TOO_LARGE int64 513 pub
SIP_BUSY_EVERYWHERE int64 600 pub
SIP_DECLINE int64 603 pub
SIP_DOES_NOT_EXIST_ANYWHERE int64 604 pub
SIP_NOT_ACCEPTABLE_ANYWHERE int64 606 pub

Typen

SIPConn (struct)

Feld Typ

SIPResponse (struct)

Feld Typ

Funktionen

Signatur Sichtbarkeit Beschreibung
SIPNextCseq(): int64 pub Nächste CSeq-Sequenznummer erzeugen
SIPGenerateRandom(len: int64): int64 pub Zufälligen Call-ID-String erzeugen
SIPStrLen(s: int64): int64 pub Länge eines C-Strings berechnen
SIPWriteStr(buf: int64, pos: int64, str: int64): int64 pub Nullterminierten String in Puffer schreiben
SIPWriteLit(buf: int64, pos: int64, str: int64, len: int64): int64 pub String mit bekannter Länge schreiben
SIPBuildRequestLine(buf: int64, pos: int64, method: int64, uri: int64): int64 pub SIP-Anfrage-Startzeile aufbauen
SIPBuildRegister(user: int64, domain: int64, contact: int64, callId: int64, cseq: int64): int64 pub REGISTER-Nachricht aufbauen
SIPBuildMessage(fromUser: int64, toUser: int64, toDomain: int64, body: int64, callId: int64, cseq: int64): int64 pub MESSAGE-Anfrage aufbauen
SIPBuildOptions(user: int64, domain: int64, callId: int64, cseq: int64): int64 pub OPTIONS-Anfrage aufbauen
SIPParseStatusCode(msg: int64): int64 pub Statuscode aus SIP-Antwort extrahieren
SIPParseHeader(msg: int64, header: int64, headerLen: int64): int64 pub Bestimmten Header aus Nachricht parsen
SIPConnect(host: int64, port: int64): SIPConn pub TCP-Verbindung zu SIP-Server aufbauen
SIPSend(conn: SIPConn, msg: int64): int64 pub SIP-Nachricht über Verbindung senden
SIPReceive(conn: SIPConn): int64 pub SIP-Antwort empfangen
SIPRegister(conn: SIPConn, user: int64, pass: int64, domain: int64): int64 pub Benutzer beim SIP-Registrar anmelden
SIPSendMessage(conn: SIPConn, toUser: int64, toDomain: int64, body: int64): int64 pub SIP-Textnachricht an Empfänger senden
SIPOptions(conn: SIPConn, user: int64, domain: int64): int64 pub Server-Fähigkeiten per OPTIONS abfragen
SIPDisconnect(conn: SIPConn) pub SIP-Verbindung trennen