API: Ruf­um­lei­tung

Die NFON Por­tal-API muss man ver­ste­hen um Sie zu nut­zen. Lei­der ist die API-Do­ku­men­ta­ti­on nicht so de­tail­liert und oft muss man tes­ten, wo und wie sich ein API-Re­quest aus­wirkt. Am Bei­spiel der Ruf­um­lei­tung (en: Call For­war­ding) möch­te ich euch die Nut­zung der Por­tal-API er­läu­tern.

Ruf­um­lei­tung in der Clou­dya Web App

Die fünf wich­tigs­ten Op­tio­nen:

  1. Ruf­um­leit­unfgs-Pro­fil
  2. Ruf­um­lei­tung im­mer (de­fault)
  3. Ruf­um­lei­tung bei be­setzt (bu­sy)
  4. Ruf­um­lei­tung nach Zeit (no ans­wer)
  5. Ruf­um­lei­tung wenn kein End­ge­rät re­gis­triert ist (not re­gis­tered)

Der Nut­zer kann je­der­zeit al­le Op­tio­nen der Ruf­um­lei­tung selbst ein­stel­len. Der NFON-Ad­mi­nis­tra­tor kann zwar Ein­stel­lun­gen vor­ge­ben, aber der Nut­zer kann je­der­zeit über di­as IP-Pho­ne, über Funk­ti­ons­codes oder über die Clou­dya App Suite al­le Ein­stel­lun­gen än­dern. Fehl­be­die­nun­gen sind al­so vor­pro­gram­miert, z.B.:

  • Ruf­um­lei­tung zu fal­schen Zie­len oder Ruf­num­mern
  • Kei­ne “Off­line-Ruf­um­lei­tung” falls kein End­ge­rät re­gis­triert ist
  • Ruf­um­lei­tun­gen im Kreis

Pro­fil

Die Ruf­um­lei­tungs­pro­fi­le sind sinn­voll für be­stimm­te Si­tua­tio­nen, z.B. Be­spre­chung, Ho­me­of­fice, Ur­laub… Der Nut­zer kann je­der­zeit neue Ruf­um­lei­tungs­pro­fi­le an­le­gen und ak­ti­vie­ren. Der NFON-Ad­min kann zwar den Nut­zer un­ter­stüt­zen, hat aber die kei­nen Ein­fluß auf die Pro­fi­le.

Als Pro­gram­mie­rer muss man al­so zu­nächst das ak­ti­ve (Ruf­um­lei­tungs-) Po­fil er­mit­teln um im nächs­ten Schritt die ge­wünsch­ten Än­de­run­gen vor­neh­men.

Die fol­gen­den Codes nut­ze ich in api​hel​per​.de und nut­ze ei­ne ver­ein­fach­te Schreib­wei­se der ty­pi­schen json-Baum­struk­tur mit fol­gen­den Ak­bür­zun­gen:

  • Kxxxx = ID der NFON-An­la­ge (Kun­den­num­mer, K‑Anlage)
  • nnn = ID der Ne­ben­stel­le (in­ter­ne Ruf­num­mer, Ex­ten­si­on)
  • p = Ruf­um­lei­tungs­pro­fil (0–9)

Der Code ent­hält den API-Re­quest und die Ant­wort der Por­tal-API

GET-Request:
href = /api/customers/Kxxxx/targets/phone-extensions/nnn/callforward-profiles
Response:
items.0.href = /api/customers/Kxxxx/targets/phone-extensions/nnn/callforward-profiles/0
items.0.data.active = true
items.0.data.immutable = true
items.1.href = /api/customers/Kxxxx/targets/phone-extensions/nnn/callforward-profiles/1
items.1.data.active = false
items.1.data.immutable = false

Er­läu­te­rung: Ne­ben­stel­le nnn der K‑Anlage Kxxxx nutzt zwei Ruf­um­lei­tungs­pro­fi­le (0, 1) wo­bei Pro­fil 0 ak­tiv ist. Pro­fil 0 ist nicht lösch­bar (en: im­mu­ta­ble), da es das Stan­dard­pro­fil ist.

Wenn der Nut­zer das op­tio­na­le (lösch­ba­re) Pro­fil 1 ak­ti­viert, sieht die Ant­wort et­was an­ders aus:

GET-Request:
href = /api/customers/Kxxxx/targets/phone-extensions/nnn/callforward-profiles
Response:
items.0.href = /api/customers/Kxxxx/targets/phone-extensions/nnn/callforward-profiles/0
items.0.data.active = false
items.0.data.immutable true
items.1.href = api/customers/Kxxxx/targets/phone-extensions/nnn/callforward-profiles/1
items.1.data.active = true
items.1.data.immutable = false 

Er­läu­te­rung: Ne­ben­stel­le nnn der K‑Anlage Kxxxx nutzt zwei Ruf­um­lei­tungs­pro­fi­le (0, 1) wo­bei das op­tio­na­le Pro­fil 1 ak­tiv ist.

De­fault

Al­le An­ru­fe wer­den um­ge­lei­tet. De­tails fol­gen…

Bu­sy

Ruf­um­lei­tung bei be­setzt. so­fern die Op­ti­on “An­klop­fen” (en: Bu­sy-on-Bu­sy) nicht ak­ti­viert wur­de. De­tails fol­gen…

No Ans­wer

Ruf­um­lei­tung nach Zeit, wenn der An­ruf z.B. nach 20 Se­kun­den nicht be­ant­wor­tet wur­de. De­tails fol­gen…

Not Re­gis­tered

Ruf­um­lei­tung, wenn an der Ne­ben­stel­le kein End­ge­rät (IP-Pho­ne, a/b‑Adapter, 3rd-Par­ty SIP-De­vice oder Clou­dya App Suite) re­gis­triert bzw. an­ge­mel­det ist.

Man kann die­se Op­ti­on ak­ti­vie­ren oder de­ak­ti­vie­ren. Wenn die­se Op­ti­on de­ak­ti­viert und kein End­ge­rät re­gis­triert ist, dann kann die NFON Cloud-Te­le­fon­an­la­ge den An­ruf nicht “zu­stel­len”. Es “klin­gelt” kein End­ge­rät und der An­ru­fer hört u.U. kein Ruf­zei­chen (engl.: Ring­back To­ne, RBT). Das ist für den An­ru­fer ir­ri­tie­rend. Es ist al­so sinn­voll, die­se Op­ti­on zu ak­ti­vie­ren.

Nach­dem man über die API das ak­ti­ve (Ruf­um­lei­tungs-) Pro­fil (p) er­mit­telt hat, kann man die Ein­stel­lun­gen zu den vier (Ruf­um­lei­tungs-) Op­tio­nen aus­le­sen oder set­zen. Für die Op­ti­on “Nicht re­gis­triert” muss das Flag “not­Re­gis­tered­Call­For­war­dAc­ti­ve” ak­tiv (=true) sein:

GET-Request:
href = /api/customers/Kxxxx/targets/phone-extensions/nnn/callforward-profiles/p/rules Response:
items.0.links.notRegisteredCallForward = /api/customers/Kxxxx/targets/phone-extensions/nnn/callforward-profiles/p/rules/ANY/NOT_REGISTERED
items.0.data.notRegisteredCallForwardActive = true

De­tails zum (Ruf­um­lei­tungs-) Ziel muss man über ei­nen wei­te­ren Re­quest aus­le­sen. Das fol­gen­de Bei­spiel zeigt die Ruf­um­lei­tung auf die VM-Box von Ne­ben­stel­le 25 (We­ber, W.):

GET-Request:
href = /api/customers/Kxxxx/targets/phone-extensions/nnn/callforward-profiles/p/rules/ANY/NOT_REGISTERED
Response:
data.name = "Weber, W."
data.type = "VOICEMAIL"
data.extensionNumber = "25"

Schreibe einen Kommentar