# HG changeset patch # User Sandro Knauß # Date 1335209910 -7200 # Node ID b218238e76b90b83a0e3e92c92443e518ac80c5f # Parent 665c3ea02d3540cf7f289f23f9943bac6077b6de creadoc: switching to rst syntax doc/tmpl: switching to english diff -r 665c3ea02d35 -r b218238e76b9 createdoc.py --- a/createdoc.py Fri Mar 30 16:39:12 2012 +0200 +++ b/createdoc.py Mon Apr 23 21:38:30 2012 +0200 @@ -2,13 +2,43 @@ # -*- coding: utf-8 -*- from genshi.template import TemplateLoader - +from genshi import Markup loader = TemplateLoader('doc/tmpl', auto_reload=True) -import re import inspect -from iro.view.xmlrpc_old import User as Current -from iro.controller.viewinterface import Interface as New +from docutils.core import publish_doctree +import docutils + +#-- +from docutils import core +from docutils.writers.html4css1 import Writer,HTMLTranslator + +class NoHeaderHTMLTranslator(HTMLTranslator): + def __init__(self, document): + HTMLTranslator.__init__(self,document) + self.body_prefix = [] + self.body_suffix = [] + +_w = Writer() +_w.translator_class = NoHeaderHTMLTranslator +_w.visitor_attributes = ("html_body",) + +def d(): + subs = _w.interpolation_dict() + return "%(html_body)s"%subs + +_w.apply_template = d + +def reSTify(s): + d =docutils.utils.new_document("") + if s.tagname == "paragraph": + d.append(s[0]) + else: + d.append(s) + + return core.publish_from_doctree(d, writer=_w) + +from iro.view.xmlrpc import TwistedInterface as Current from createerm import createSchemaPlot, tables, tables_cls @@ -29,62 +59,86 @@ pass class Keyword(): - def __init__(self,name,typ,description): + def __init__(self, name=None, typ=None, description=None): self.name=name self.typ=typ self.description=description -def section(text): - ret={} - li=[] - kw=None - for line in text.split("\n"): - if re.match("^\s*$",line): - continue - - if line[0] not in (" ","\t"): - if kw: - ret[kw.name]=kw - li.append(kw) - l=re.match(r"^(?P[a-zA-Z0-9-_.]*)\[(?P[a-zA-Z0-9-_|]*)\]:(?P.*)$",line) - kw=Keyword(name=l.group("name"),typ=l.group("typ"),description=l.group("d")) - else: - kw.description+="\n"+line.strip() - if kw: - ret[kw.name]=kw - li.append(kw) - return ret,li - - + def __repr__(self): + return ''%(self.name, self.typ, self.description) def keywords(f): - doc=f.__doc__.decode('utf8') - kwds=re.search("Keywords:\n(?P(?P\s*)(.+\n)*)\n",doc) - k=kwds.group("keywords") - #get rid of beginning whitespaces - k=re.sub(re.compile(r"^"+kwds.group("whitespace"),re.M),"",k) - return section(k) + NORMAL = 0 + TYPE = 1 + pd = publish_doctree(f.__doc__.decode('utf8')) + + kws={} + for child in pd[1][0]: + kw = Keyword() + ftyp = NORMAL + for sc in child: + if sc.tagname == "field_name": + p = sc.astext().split() + if p[0] in ["param",]: + if len(p) == 3: #param typ name + kw.name = p[2] + kw.typ = p[1] + if len(p) == 2: + kw.name = p[1] + elif p[0] == "type": + kw = kws[p[1]] + ftyp=TYPE + elif p[0] in ["return","rtyp"]: + break + else: + raise Exception("Unknown field_name: %s"%(p[0])) + if sc.tagname == "field_body": + if ftyp == NORMAL: + kw.description = Markup(reSTify(sc[0])) + if ftyp == TYPE: + kw.typ = sc[0][0] + else: + kws[kw.name] = kw + return kws def ret(f): - doc=f.__doc__.decode('utf8') - kwds=re.search("Return:\n(?P(?P\s*)(.+\n)*)\n",doc) - k=kwds.group("ret") - #get rid of beginning whitespaces - k=re.sub(re.compile(r"^"+kwds.group("whitespace"),re.M),"",k) - return section(k) - - - + NORMAL = 0 + TYPE = 1 + + pd = publish_doctree(f.__doc__.decode('utf8')) + for child in pd[1][0]: + kw = Keyword(name="return") + ftyp = NORMAL + for sc in child: + if sc.tagname == "field_name": + p = sc.astext().split() + if p[0] == "return": + if len(p) == 2: + kw.typ = p[1] + elif p[0] == "rtype": + ftyp=TYPE + elif p[0] in ["param","type"]: + break + else: + raise Exception("Unknown field_name: %s"%(p[0])) + if sc.tagname == "field_body": + if ftyp == NORMAL: + kw.description = Markup(reSTify(sc[0])) + if ftyp == TYPE: + kw.typ = sc[0][0] + else: + return kw + + raise Exception("no return description") + class Arg(): def __init__(self,name,f): self.name=name - k,_ = keywords(f) + k = keywords(f) kwd=k[name] self.typ=kwd.typ self.description=kwd.description - - class Method(Link): def __init__(self,name,methods): title=name[0].upper()+name[1:] @@ -95,16 +149,16 @@ for b in args: if b in ("self","session"): continue - if b == "user": - a.append("apikey") else: a.append(b) args = a self.func_line=inspect.formatargspec(args, varargs, keywords, defaults) - self.description = m.__doc__.split("\n")[0].decode("utf8") + pd = publish_doctree(m.__doc__) + if pd[0].tagname == "paragraph": + self.description = pd[0].astext() self.args=[Arg(a,m) for a in args] - _, self.rets=ret(m) + self.rets=[ret(m)] class Table(Link): def __init__(self,cls): @@ -112,42 +166,19 @@ self.tablename=cls.__tablename__ title=self.tablename[0].upper()+self.tablename[1:] Link.__init__(self,name,title) - self.description = cls.__doc__.split("\n")[0].decode("utf8") + + self.description = Markup(core.publish_string(cls.__doc__,writer=_w)) def main(): sites=[Site("index.html","Iro"), Site("current.html","API Documentation"), - Site("new.html","geplante API Documentation"), - Site("database.html","Datenbank Schema"), - Site("impressum.html","Impressum"), + Site("database.html","Datenbase Schema"), + Site("about.html","About us"), ] - current_methods = dict(inspect.getmembers(Current(None,None))) - current=[ - Method("startSMS",current_methods), - Method("startFAX",current_methods), - Method("startMail",current_methods), - - Method("status",current_methods), - Method("stop",current_methods), - - Method("getProvider",current_methods), - Method("getDefaultProvider",current_methods), - ] - - new_methods = dict(inspect.getmembers(New())) - newm=[ - Method("sms",new_methods), - Method("fax",new_methods), - Method("mail",new_methods), - - Method("status",new_methods), - Method("stop",new_methods), - - Method("routes",new_methods), - Method("defaultRoute",new_methods), - ] + current_methods = dict(inspect.getmembers(Current())) + current=[ Method(i,current_methods) for i in Current().listMethods() if i != "listMethods" ] t = [Table(tables_cls[str(f)]) for f in tables] createSchemaPlot('doc/images/db-schema.svg') @@ -158,7 +189,7 @@ def a(s): if s == site: return {"class":"menu active"} - stream = tmpl.generate(sites=sites,active=a,current=current,new=newm,tables=t) + stream = tmpl.generate(sites=sites, active=a, current=current, tables=t) with open('doc/'+site.name, "w") as g: g.write(stream.render('html', doctype='html')) diff -r 665c3ea02d35 -r b218238e76b9 doc/current.html --- a/doc/current.html Fri Mar 30 16:39:12 2012 +0200 +++ b/doc/current.html Mon Apr 23 21:38:30 2012 +0200 @@ -3,7 +3,7 @@ - Iro · API docs + Iro · api docs current @@ -19,349 +19,501 @@
-

API Dokumentation

+

API Documentation

    -
  1. 1. Einführung
  2. +
  3. 1. Intro
  4. 2. - Interfaces -
      -
    1. 2.1 XML-RPC
    2. -
    + Interfaces +
      +
    1. 2.1 XML-RPC
    2. +
    3. 2.2 SOAP
    4. +
    5. 2.3 JSON
    6. +
    7. 2.4 JSONP
    8. +
  5. 3. - Methoden + Methods
      -
    1. 3.1 StartSMS
    2. 3.2 StartFAX
    3. 3.3 StartMail
    4. 3.4 Status
    5. 3.5 Stop
    6. 3.6 GetProvider
    7. 3.7 GetDefaultProvider
    8. +
    9. 3.1 Status
    10. 3.2 Sms
    11. 3.3 Fax
    12. 3.4 Mail
    13. 3.5 Routes
    14. 3.6 DefaultRoute
    15. 3.7 Bill
    16. 3.8 Telnumber
    17. 3.9 Email
-

Einführung

+

Intro

- Die Iro API enthält Funktion, die für den Massenversand nützlich sind. + Iro API has many methods, that are usefull if you want to send a bunch of messages. This Site describes the API for Iro 1.0.

Interfaces

- Die Iro API stellt zur Zeit nur ein Interfaces bereit. + You can use diffrent interfaces to get to same result.

XML-RPC

- Interface-URI: https://<benutzer>:<passwort>@localhost:8000 + Interface-URI: http://localhost:8000/xmlrpc +

+
+
+

SOAP

+

+ Interface-URI: http://localhost:8000/soap +

+
+
+

JSON

+

+ Interface-URI: http://localhost:8000/json/<methode>

- Die aufgerufene Methode wird dabei im <methodName /> übergeben. + Not yet implementet +

+
+
+

JSONP

+

+ Interface-URI: http://localhost:8000/jsonp/<methode>?callback=<callback> +

+

+ Not yet implementet

-

Methoden

-
-

StartSMS

-

startSMS(message, recipients, provider='default')

-

Versendet eine SMS.

+

Methods

+
+

Status

+

status(user=None, id=False, detailed=None)

+

Returns the status of one or more jobs.

Parameter
- - - + + + + + + + + + + + + + + + + + + + + +
ParameterTypBeschreibungparametertypedescription
userstringapikey of a user
idintegerone job id
detailedbooleanreturn more details about the status
+
Return
+ + + + + + - - - - - - - - - - - + + +
parametertypedescription
messagestring Nachricht
recipientslist eine Liste von Emfänger-Nummern (gemäß ITU-T E.123)
providerstring Provider über den geschickt werden sollreturndict
    +
  • key -- is the job id
  • +
  • [key]['status'] -- status of the job
  • +
-
Ausgabe
+
+

Sms

+

sms(user, message, recipients, route='default', info='')

+

Send a sms.

+
Parameter
- - - + + + - - - + + + + + + + + + + + + + + + + + + +
ParameterTypBeschreibungparametertypedescription
idhash Die ID des Auftragesuserstringapikey of a user
messagestringmessage
recipientslista list of telefon numbers (use ITU-T E.123)
routestring|listroute to use to send, or a list of routes as fallback
infostringa name, to combine different jobs to one billing group
-
-

StartFAX

-

startFAX(subject, fax, recipients, provider='default')

-

Versendet ein FAX.

-
Parameter
+
Return
- - - + + + - - - - - - - - - - - - - - - + + +
ParameterTypBeschreibungparametertypedescription
subjectstring der Betreff
faxstring das pdf base64 kodiert
recipientslist eine Liste von Emfänger-Nummern (gemäß ITU-T E.123)
providerstring Provider über den geschickt werden sollreturnintegerthe job id
-
Ausgabe
+
+

Fax

+

fax(user, subject, fax, recipients, route='default', info='')

+

Send a fax.

+
Parameter
- - - + + + - - - + + + + + + + + + + + + + + + + + + + + + + +
ParameterTypBeschreibungparametertypedescription
idhash Die ID des Auftragesuserstringapikey of a user
subjectstringsubject
faxstringcontent (base64 encoded)
recipientslista list of telefon numbers (use ITU-T E.123)
routestring|listroute to use to send, or a list of routes as fallback
infostringa name, to combine different jobs to one billing group
-
-

StartMail

-

startMail(subject, body, recipients, frm, provider='default')

-

Versendet eine Email.

+
Return
+ + + + + + + + + + + + + + + +
parametertypedescription
returnintegerthe job id
+
+

Mail

+

mail(user, subject, body, recipients, frm=None, route='default', info='')

+

Send a mail.

Parameter
- - - + + + + + + + - + - + - + - + - + + + + + - +
ParameterTypBeschreibungparametertypedescription
userstringapikey of a user
subject string der Betreffsubject
body string der Email Bodymail body
recipients list eine Liste von Emailadressena list of email addresses
frm string Die Absender Emailadressesender mail address
providerroutestring|listroute to use to send, or a list of routes as fallback
info string Provider über den geschickt werden solla name, to combine different jobs to one billing group
-
Ausgabe
+
Return
- - - + + + - - - + + +
ParameterTypBeschreibungparametertypedescription
idhash Die ID des Auftragesreturnintegerthe job id
-
-

Status

-

status(id=None, detailed=False)

-

Gibt den aktuellen Status eines Auftrages zurück.

+
+

Routes

+

routes(user, typ=None)

+

Returns a list of all possible offernames.

Parameter
- - - + + + - - - + + + - - - + + +
ParameterTypBeschreibungparametertypedescription
idhash Eine Auftragsnummeruserstringapikey of a user
detailedboolean Details ausgebentypstringa typ of message -- one of in this list ["sms","fax","mail"]
-
Ausgabe
+
Return
- - - + + + + + + + + + + + + +
ParameterTypBeschreibungparametertypedescription
returnlista list of all possible offer names for a typ
+
+

DefaultRoute

+

defaultRoute(user, typ=None)

+

Returns all default offernames.

+
Parameter
+ + + + + + - - - - - + - + - + - +
parametertypedescription
jobslist Eine Liste der Aufträge.
job.nameuser string Angebener Nameapikey of a user
job.statustyp string Status des Auftragesa typ of message -- one of in this list ["sms","fax","mail"]
-
-

Stop

-

stop(id)

-

Stoppt den angegeben Auftrag.

+
Return
+ + + + + + + + + + + + + + + +
parametertypedescription
returnlista list of all possible offer names for a typ
+
+

Bill

+

bill(user=None)

+

Returns the bill, of not paid messages.

Parameter
- - - + + + - - - + + +
ParameterTypBeschreibungparametertypedescription
idhash Eine Auftragsnummeruserstringapikey of a user
-
-

GetProvider

-

getProvider(typ)

-

Gibt eine Liste aller verfügbaren Provider zurück.

-
Parameter
+
Return
- - - + + + - - - + + +
ParameterTypBeschreibungparametertypedescription
typstring Der Typ zu dem die Providerloste ausgeben werden soll -Einer der Liste ["sms","fax","mail"]returndict
    +
  • route -- one offer name ; "total" complete sum
  • +
  • [route][info][anz] -- Number of sended messages in one billing group
  • +
  • [route][info][price] -- Price for one billing group
  • +
  • [route | total][anz] -- Number of sended messages for one offer
  • +
  • [route | total][price] -- Price for one offer
  • +
-
Ausgabe
+
+

Telnumber

+

telnumber(recipients)

+

Return True, if all telnumbers a vaild.

+
Parameter
- - - + + + - + - +
ParameterTypBeschreibungparametertypedescription
providerlistrecipients list Eine Liste aller möglichen Providera list of telnumbers (use ITU-T E.123)
-
-

GetDefaultProvider

-

getDefaultProvider(typ)

-

Gibt den Standardprovider zurück.

-
Parameter
+
Return
- - - + + + - - - + + +
ParameterTypBeschreibungparametertypedescription
typstring Der Typ zu dem die Providerloste ausgeben werden soll -Einer der Liste ["sms","fax","mail"]returnbooleanTrue -- all numbers are valid
-
Ausgabe
+
+

Email

+

email(recipients)

+

Return True, if all mailadresses a valid.

+
Parameter
- - - + + + - - - + + + + + +
ParameterTypBeschreibungparametertypedescription
providerstring Der Standardprovider für den angeben Typrecipientslista list of mailadresses
+
Return
+ + + + + + + + + + + + +
parametertypedescription
returnbooleanTrue -- all addresses are valid
diff -r 665c3ea02d35 -r b218238e76b9 doc/database.html --- a/doc/database.html Fri Mar 30 16:39:12 2012 +0200 +++ b/doc/database.html Mon Apr 23 21:38:30 2012 +0200 @@ -3,7 +3,7 @@ - Iro · Datenbank + Iro · Datenbase @@ -19,47 +19,55 @@
-

Datenbank Schema

+

Datenbase Schema

Schema

-

Dies ist eine Übersicht der benutzen Tabellen die Iro benötigt.

+

Overview of used tables.

-

Tabellen

+

Tables

Apiuser

-

Die Benutzerdatenbank von Iro.

+

An user in iro.

+
+

Offer

+

All possible Offers over a Message can be sended. provider, typ and route are used to get the data form configuration file.

Job

-

Ein kompletter Auftrag, der an Iro zum verschicken übergeben wird. Status zeigt den generellen Status des Auftrages an (init, started, sending, sended oder error). info wird verwendet um dem Benutzer eine Möglickeit zu geben verschiede Auftragsgruppen zu erstellen.

+

A complete Job.

+
+
    +
  • status show the status of the job (init, started, sending, sended or error).
  • +
  • info is used to make it possible to create different billing groups for user.
  • +
+

+
+

Userright

+

Allowed offers for one user. Default routes are sorted by default value.

Message

-

Wenn ein Vorgang von Iro Kosten erzeugt hat wird eine neue Zeile eingefügt. Solange nicht bezahlt wurde ist isBilled=0.

-
-

Offer

-

Alle Routen über die SMS, Faxe und Mails verschickt werden könnnen. provider, typ und route werden verwendet, um die entsprechenden Zugangsdaten laden zu können.

-
-

Userright

-

Über welche Routen darf ein Benutzer Daten verschicken und welches sind die Standardrouten (isDefault=1) für den Benuter.

+

A message that has created costs.

+
+isBilled is False since the bill is paid.

diff -r 665c3ea02d35 -r b218238e76b9 doc/images/db-schema.svg --- a/doc/images/db-schema.svg Fri Mar 30 16:39:12 2012 +0200 +++ b/doc/images/db-schema.svg Mon Apr 23 21:38:30 2012 +0200 @@ -4,93 +4,96 @@ - - + + G - + message - -message - -- id : INTEGER -- recipient : VARCHAR -- isBilled : BOOLEAN -- date : DATETIME -- price : NUMERIC(8, 2) -- job : INTEGER -- offer : VARCHAR + +message + +- id : INTEGER +- recipient : VARCHAR(100) +- isBilled : BOOLEAN +- date : DATETIME +- price : NUMERIC(8, 4) +- count : INTEGER +- exID : VARCHAR(100) +- job : VARCHAR(40) +- offer : VARCHAR(100) job - -job - -- hash : VARCHAR -- info : VARCHAR -- status : VARCHAR(7) -- user : VARCHAR + +job + +- id : INTEGER +- info : VARCHAR(100) +- status : VARCHAR(7) +- user : VARCHAR(100) message->job - - -+ hash -+ job + + ++ id ++ job offer - -offer - -- name : VARCHAR -- provider : VARCHAR -- route : VARCHAR -- typ : VARCHAR + +offer + +- name : VARCHAR(100) +- provider : VARCHAR(100) +- route : VARCHAR(100) +- typ : VARCHAR(100) message->offer - - -+ name -+ offer + + ++ name ++ offer userright - -userright - -- user : VARCHAR -- offer : VARCHAR -- isDefault : BOOLEAN + +userright + +- user : VARCHAR(100) +- offer : VARCHAR(100) +- default : INTEGER apiuser - -apiuser - -- name : VARCHAR -- apikey : VARCHAR + +apiuser + +- name : VARCHAR(100) +- ng_kunde : INTEGER +- apikey : VARCHAR(50) job->apiuser - - -+ name -+ user + + ++ name ++ user apiuser->userright - -+ name -+ user + ++ name ++ user offer->userright - -+ name -+ offer + ++ name ++ offer diff -r 665c3ea02d35 -r b218238e76b9 doc/index.html --- a/doc/index.html Fri Mar 30 16:39:12 2012 +0200 +++ b/doc/index.html Mon Apr 23 21:38:30 2012 +0200 @@ -19,7 +19,7 @@
@@ -28,8 +28,29 @@

Iro

+

What it is all about?

- Iro ist toll, ist aber noch nicht fertig. + Iro is a non blocking server for sending a message to a bunsh of recipient. It can handle diffrent types of message typs and can be extended easially. + It was initially written for sms backend of castorticker.de. Diffrent backends are supportes by Iro. +

+
+

Supported Backends

+

+ A backend is a provider, that actually sends the message. +

    +
  • smtp with TLS and SSL
  • +
  • smstrade all diffrent routes are selectable
  • +
  • sipgate fax and sms
  • +
+

+
+

Installation

+

+ You'll find the installtion instruction under dev/install. +

+

Documentation

+

+ All documentation for extending iro see dev

diff -r 665c3ea02d35 -r b218238e76b9 doc/tmpl/current.html --- a/doc/tmpl/current.html Fri Mar 30 16:39:12 2012 +0200 +++ b/doc/tmpl/current.html Mon Apr 23 21:38:30 2012 +0200 @@ -5,66 +5,91 @@ xmlns:py="http://genshi.edgewall.org/"> - API docs + api docs current - API Dokumentation + API Documentation

- +

    -
  1. 1. Einführung
  2. +
  3. 1. Intro
  4. 2. - Interfaces -
      -
    1. 2.1 XML-RPC
    2. -
    + Interfaces +
      +
    1. 2.1 XML-RPC
    2. +
    3. 2.2 SOAP
    4. +
    5. 2.3 JSON
    6. +
    7. 2.4 JSONP
    8. +
  5. 3. - Methoden + Methods
    1. 3.${key+1} ${method.title}
  6. +
-

Einführung

+

Intro

- Die Iro API enthält Funktion, die für den Massenversand nützlich sind. + Iro API has many methods, that are usefull if you want to send a bunch of messages. This Site describes the API for Iro 1.0.

Interfaces

- Die Iro API stellt zur Zeit nur ein Interfaces bereit. + You can use diffrent interfaces to get to same result.

XML-RPC

- Interface-URI: https://<benutzer>:<passwort>@localhost:8000 + Interface-URI: http://localhost:8000/xmlrpc +

+
+
+

SOAP

+

+ Interface-URI: http://localhost:8000/soap +

+
+
+

JSON

+

+ Interface-URI: http://localhost:8000/json/<methode>

- Die aufgerufene Methode wird dabei im <methodName /> übergeben. + Not yet implementet +

+
+
+

JSONP

+

+ Interface-URI: http://localhost:8000/jsonp/<methode>?callback=<callback> +

+

+ Not yet implementet

-

Methoden

+

Methods

${method.title}

${method.name}${method.func_line}

- Diese Methode at bis jetzt noch keine Beschreibung. + No description

Parameter
- - - + + + @@ -76,13 +101,13 @@
ParameterTypBeschreibungparametertypedescription
-
Ausgabe
+
Return
- - - + + + diff -r 665c3ea02d35 -r b218238e76b9 doc/tmpl/database.html --- a/doc/tmpl/database.html Fri Mar 30 16:39:12 2012 +0200 +++ b/doc/tmpl/database.html Mon Apr 23 21:38:30 2012 +0200 @@ -5,18 +5,18 @@ xmlns:py="http://genshi.edgewall.org/"> - Datenbank + Datenbase - Datenbank Schema + Datenbase Schema

    -
  1. 1. Datenbankschema
  2. +
  3. 1. Datenbase schema
  4. 3. - Tabellen + Tables
    1. 2.${key+1} ${table.title}
    @@ -28,14 +28,14 @@

    Schema

    -

    Dies ist eine Übersicht der benutzen Tabellen die Iro benötigt.

    +

    Overview of used tables.

    -

    Tabellen

    +

    Tables

    ${table.title}

    -

    - Dieser Tabelle fehlt noch die Beschreibung. +

    + No description available.

    diff -r 665c3ea02d35 -r b218238e76b9 doc/tmpl/index.html --- a/doc/tmpl/index.html Fri Mar 30 16:39:12 2012 +0200 +++ b/doc/tmpl/index.html Mon Apr 23 21:38:30 2012 +0200 @@ -10,8 +10,33 @@ Iro
    +

    What it is all about?

    - Iro ist toll, ist aber noch nicht fertig. + Iro is a non blocking server for sending a message to a bunsh of recipient. It can handle diffrent types of message typs and can be extended easially. + It was initially written for sms backend of castorticker.de. Diffrent backends are supportes by Iro. +

    +
    +
    +

    Supported Backends

    +

    + A backend is a provider, that actually sends the message. +

      +
    • smtp with TLS and SSL
    • +
    • smstrade all diffrent routes are selectable
    • +
    • sipgate fax and sms
    • +
    +

    + +
    +
    +

    Installation

    +

    + You'll find the installtion instruction under dev/install. +

    + +

    Documentation

    +

    + All documentation for extending iro see dev

    diff -r 665c3ea02d35 -r b218238e76b9 doc/tmpl/new.html --- a/doc/tmpl/new.html Fri Mar 30 16:39:12 2012 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,164 +0,0 @@ - - - - - api docs new - - - geplante API Dokumentation -
    -

    - -

    -
      -
    1. 1. Einführung
    2. -
    3. 2. - Interfaces -
        -
      1. 2.1 XML-RPC
      2. -
      3. 2.1 SOAP
      4. -
      5. 2.2 XML
      6. -
      7. 2.3 JSON
      8. -
      9. 2.4 JSONP
      10. -
      11. 2.5 PHP
      12. -
      -
    4. -
    5. 3. - Methoden -
        -
      1. 3.${key+1} ${method.title}
      2. -
      -
    6. - -
    -
    -
    -

    Einführung

    -

    - Die Iro API enthält Funktion, die für den Massenversand nützlich sind. -

    -
    -
    -

    Interfaces

    -

    - - Die Iro API wird über verschiedene Interfaces bereit gestellt, die unterschiedlich angesprochen werden, aber das selbe tun. -

    -
    -

    XML-RPC

    -

    - Interface-URI: http://localhost:8000/xmlrpc -

    -

    - Die aufgerufene Methode wird dabei im <methodName /> übergeben. -

    -
    -
    -

    SOAP

    -

    - Interface-URI: http://localhost:8000/soap -

    -

    - Die aufgerufene Methode wird dabei im <methodName /> übergeben. -

    -
    -
    -

    XML

    -

    - Interface-URI: http://localhost:8000/xml/<methode> -

    -

    - Die aufgerufene Methode wird im Pfad der Interface-URI übergeben. -

    -

    - Parameter können via HTTP per GET oder POST im Format application/x-www-form-urlencoded übergeben werden. -

    -

    - Die Ausgabe erfolgt als XML Markup. -

    -
    -
    -

    JSON

    -

    - Interface-URI: http://localhost:8000/json/<methode> -

    -

    - Die aufgerufene Methode wird im Pfad der Interface-URI übergeben. -

    -

    - Parameter können via HTTP per GET oder POST im Format application/x-www-form-urlencoded oder JSON-Objekt übergeben werden. -

    -

    - Die Ausgabe erfolgt als JSON-Objekt. -

    -
    -
    -

    JSONP

    -

    - Interface-URI: http://localhost:8000/jsonp/<methode>?callback=<callback> -

    -

    - Die aufgerufene Methode wird im Pfad der Interface-URI übergeben. -

    -

    - Der Name für die Callback-Methode wird als Parameter Callback übergeben. -

    -

    - Parameter können via HTTP per GET im Format application/x-www-form-urlencoded übergeben werden. -

    -

    - Die Ausgabe erfolgt als Javascript-Funktionsaufruf mit einem JSON-Objekt als Parameter. -

    -
    -
    -
    -

    Methoden

    -
    -

    ${method.title}

    -

    ${method.name}${method.func_line}

    -

    - Diese Methode at bis jetzt noch keine Beschreibung. -

    -
    Parameter
    -
ParameterTypBeschreibungparametertypedescription
- - - - - - - - - - - - - - -
ParameterTypBeschreibung
${arg.name}${arg.typ}${arg.description}
- -
Ausgabe
- - - - - - - - - - - - - - - -
ParameterTypBeschreibung
${arg.name}${arg.typ}${arg.description}
-
-
-
- - diff -r 665c3ea02d35 -r b218238e76b9 doc/tmpl/old.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/tmpl/old.html Mon Apr 23 21:38:30 2012 +0200 @@ -0,0 +1,100 @@ + + + + + API docs old + + + Alte API Dokumentation +
+

+ +

+
    +
  1. 1. Einführung
  2. +
  3. 2. + Interfaces +
      +
    1. 2.1 XML-RPC
    2. +
    +
  4. +
  5. 3. + Methoden +
      +
    1. 3.${key+1} ${method.title}
    2. +
    +
  6. +
+
+
+

Einführung

+

+ Die Iro API enthält Funktion, die für den Massenversand nützlich sind. +

+
+
+

Interfaces

+

+ Die Iro API stellt zur Zeit nur ein Interfaces bereit. +

+
+

XML-RPC

+

+ Interface-URI: https://<benutzer>:<passwort>@localhost:8000 +

+

+ Die aufgerufene Methode wird dabei im <methodName /> übergeben. +

+
+
+
+

Methoden

+
+

${method.title}

+

${method.name}${method.func_line}

+

+ Diese Methode at bis jetzt noch keine Beschreibung. +

+
Parameter
+ + + + + + + + + + + + + + + +
ParameterTypBeschreibung
${arg.name}${arg.typ}${arg.description}
+ +
Ausgabe
+ + + + + + + + + + + + + + + +
ParameterTypBeschreibung
${arg.name}${arg.typ}${arg.description}
+
+
+
+ +