qmexnetworks / 3cx-zammad-bridge

Monitors calls in 3CX and forwards this to Zammad
European Union Public License 1.2
13 stars 0 forks source link

Queue Calls | Error 500 #4

Open ebstefan6 opened 2 years ago

ebstefan6 commented 2 years ago

Hi,

war haben heute die zammad bridge mit V18 eingerichtet. Personalisierte Anrufe kommen auch entsprechend im Zammad an, aber bei Calls aus Warteschleifen:

2022/07/18 15:06:31 Call with ID Inbound was hangup 2022/07/18 15:06:31 Error unexpected response (HTTP 500): <!DOCTYPE html>

500: Something went wrong

500: We're sorry, but something went wrong.

We're sorry, but something went wrong.

Die Digits für Trunk und co passen so. Jemand eine Idee, was das sein könnte?
EtienneBruines commented 2 years ago

Gibt es auf dem Server weitere Infos/Logs, die mehr Infos zu den den HTTP 500 geben?

ebstefan6 commented 2 years ago

Ich wüsste spontan nicht, wie ich daran kommen sollte. Der call wird ja von der Bridge ausgelöst, korrekt?

ebstefan6 commented 2 years ago

Wenn ich den Call annehme oder es Klingelt aus der Warteschleife, taucht im Log gar nichts auf, der Fehler kommt erst beim anlegen. Kann es damit zusammenhängen, dass die WS gar nicht in der Gruppe ist, die gemonitored wird?

EtienneBruines commented 2 years ago

Ich wüsste spontan nicht, wie ich daran kommen sollte.

Wird wohl irgendwann im Zammad Error Log auftauchen. :thinking:

Der call wird ja von der Bridge ausgelöst, korrekt?

Genau, die HTTP Abfrage wird von der Bridge ausgelöst.

Kann es damit zusammenhängen, dass die WS gar nicht in der Gruppe ist, die gemonitored wird?

Da muss ich sagen, bin ich überfragt.

ebstefan6 commented 2 years ago

I, [2022-07-18T09:14:30.391293 #452-388880] INFO -- : Started POST "/api/v1/cti/3v0eSnXXXX" for 185.244XX at 2022-07-18 09:14:30 -0400 I, [2022-07-18T09:14:30.397077 #452-388880] INFO -- : Parameters: {"event"=>"hangup", "from"=>"XXXX4360", "to"=>"010", "direction"=>"in", "call_id"=>"", "callid"=>"", "cause"=>"normalClearing", "answeringNumber"=>"010", "token"=>"3v0eSnUFo8GZxAG3Ni6PpZPi7JU"} app/models/cti/log.rb:428:in process' app/models/cti/driver/base.rb:43:inprocess' app/controllers/integration/cti_controller.rb:13:in event' app/controllers/application_controller/handles_transitions.rb:16:inhandle_transaction' I, [2022-07-18T09:14:30.441815 #452-388880] INFO -- : Completed 500 Internal Server Error in 45ms (Views: 1.5ms | ActiveRecord: 16.8ms | Allocations: 7419) I, [2022-07-18T09:14:44.047378 #452-460380] INFO -- : Started GET "/api/v1/httplogs/cti?limit=50&=1658149051770" for 46.83.113.14 at 2022-07-18 09:14:44 -0400 I, [2022-07-18T09:14:44.056480 #452-460380] INFO -- : Parameters: {"limit"=>"50", "_"=>"1658149051770", "facility"=>"cti"} I, [2022-07-18T09:14:44.098310 #452-460380] INFO -- : Completed 200 OK in 42ms (Views: 15.8ms | ActiveRecord: 6.6ms | Allocations: 15097) I, [2022-07-18T09:14:53.156836 #452-389020] INFO -- : Started POST "/api/v1/cti/3v0eSnUFo8XXXX" for 185.244.XXX at 2022-07-18 09:14:53 -0400 I, [2022-07-18T09:14:53.162278 #452-389020] INFO -- : Parameters: {"event"=>"hangup", "from"=>"XXX360", "to"=>"010", "direction"=>"in", "call_id"=>"", "callid"=>"", "cause"=>"normalClearing", "answeringNumber"=>"010", "token"=>"3v0eSnUFo8GZxAG3Ni6PpZPi7JU"} app/models/cti/log.rb:428:in process' app/models/cti/driver/base.rb:43:inprocess' app/controllers/integration/cti_controller.rb:13:in event' app/controllers/application_controller/handles_transitions.rb:16:inhandle_transaction' I

ebstefan6 commented 2 years ago

Ich vermute, das ist das gleiche, was https://github.com/qmexnetworks/3cx-zammad-bridge/issues/2 beschreibt.

EtienneBruines commented 2 years ago

Wenn ich den Call annehme oder es Klingelt aus der Warteschleife, taucht im Log gar nichts auf, der Fehler kommt erst beim anlegen. Kann es damit zusammenhängen, dass die WS gar nicht in der Gruppe ist, die gemonitored wird?

Das Monitoren bezieht sich nur darauf, ob etwas mit dem Anruf passiert. Es wird aus der Gruppe eine Liste erstellt, welche Rufnummern verwendet werden - und an Zammad werden nur Anrufe von/zu Rufnummern aus dieser Liste übertragen. Das heißt, ist die WS nicht in der Queue, wird der Anruf während dieser Zeit ignoriert. Sobald diese dann von jemand angenommen wird, gibt es (hoffentlich) eine Zuordnung zu eine Rufnummer aus der erstellte Liste und wird es damit an Zammad übertragen.

Solange der Anruf aber nicht verknüpft ist mit jemand aus dieser erstellte Liste, wird der auch nicht an Zammad übermittelt - auch nicht als „jemand ruft gerade an“.

Der Log-Eintrag Call with ID was hangup bedeutet dass der Anruf früher ein Gespräch war (eine Ansage vorab, gehe ich mal eben von aus) und jetzt der Anruf aber nicht mehr von 3CX übermittelt wird. Weshalb ein Anruf nicht von 3CX als activeCalls übermittelt wird, weiß ich allerdings nicht. Könnte bestimmt mit einer der Einstellungen der 3CX Instanz zu tun haben. Wer weiß, vielleicht hat er von 3CX eine neue ID bekommen - das wäre auch doof.

Bei dem Anruf würde dann aber schon anfangs New call (Talking) with ID ... from .. to ... geloggt werden. Ist das auch hier der Fall gewesen? Oder fängt der direkt an mit Call with ID Inbound was hangup?

Fällt mir jetzt aber auch auf: Call with ID <uuidv4> Inbound was hangup, da hätte noch eine UUIDv4 stehen müssen. War der Log-Eintrag tatsächlich ohne UUIDv4? (Und dann wahrscheinlich mit doppelte Leerzeilen zwischen ID und Inbound.)

Habe nun https://github.com/qmexnetworks/3cx-zammad-bridge/releases/tag/v0.5 ausgebracht mit Verbose Logging (mit -v), vielleicht dass das hilft, einige weitere Informationen herauszufinden.