Zeige Ergebnis 1 bis 7 von 7

Thema: Records

  1. #1
    STARFACE Admin

    Registriert seit
    16.07.2013
    Beiträge
    107

    Standard Records

    Hallo Zusammen,

    ich möchte gerne etwas aufzeichen mit Records, das klappt auch ganz gut nur möchte ich etwas "mehr" machen und suche gerade eine Lösung wie das Modul erst dann weiter macht wenn der Anruf beendet ist nun komme ich gerade nicht weiter und hoffe auf hilfe von euch.

    Wenn ich das Records auf Syncron stelle dann kommt garkein freizeichen mehr und es klingelt auch das telefon nicht mehr.
    Wenn ich Records auf Asyncon stelle und eine while schleife mache ob die Leitung noch aktiv ist dann habe ich ein freizeichen aber das Telefon klingelt nicht mehr.

    Beides ist irgendwie die richtige richtung aber nun weiss ich nicht mehr weiter.

    Jemnand eine Idee?

    Danke
    Gruß

    Jens

  2. #2
    STARFACE Crew
    Benutzerbild von TomAnson
    Registriert seit
    11.11.2014
    Ort
    Karlsruhe
    Beiträge
    1.329

    Standard

    Zitat Zitat von jremme Beitrag anzeigen
    Hallo Zusammen,

    ich möchte gerne etwas aufzeichen mit Records, das klappt auch ganz gut nur möchte ich etwas "mehr" machen und suche gerade eine Lösung wie das Modul erst dann weiter macht wenn der Anruf beendet ist nun komme ich gerade nicht weiter und hoffe auf hilfe von euch.

    Wenn ich das Records auf Syncron stelle dann kommt garkein freizeichen mehr und es klingelt auch das telefon nicht mehr.
    Wenn ich Records auf Asyncon stelle und eine while schleife mache ob die Leitung noch aktiv ist dann habe ich ein freizeichen aber das Telefon klingelt nicht mehr.

    Beides ist irgendwie die richtige richtung aber nun weiss ich nicht mehr weiter.

    Jemnand eine Idee?

    Danke
    Gruß

    Jens
    Hast du deine While-Loop in einem anderen Thread (Fork -->) gestartet, der dann zum Beispiel den Rufstatus des Angerufenen oder isChannelStillUp auf dem Rufkanal zyklisch prüft, und nach der entsprechenden Änderung die Verarbeitung weiterführt?
    STARFACE Quality Assurance

    Bug gefunden? Hier melden!
    Featurewunsch oder Verbesserungsvorschlag? Trage es in unserem Feature Request Portal ein!
    Unsere Knowledge-Base für STARFACE findet ihr hier!

  3. #3
    STARFACE Admin

    Registriert seit
    16.07.2013
    Beiträge
    107

    Standard

    Hallo,

    ich mache das einfach in dem gleichem "Schritt" mh ja stimmt, ich könnte forken.

    Das teste ich mal, danke!

    Gruß
    Jens

  4. #4
    STARFACE Crew
    Benutzerbild von TomAnson
    Registriert seit
    11.11.2014
    Ort
    Karlsruhe
    Beiträge
    1.329

    Standard

    Zitat Zitat von jremme Beitrag anzeigen
    Hallo,

    ich mache das einfach in dem gleichem "Schritt" mh ja stimmt, ich könnte forken.

    Das teste ich mal, danke!

    Gruß
    Jens
    Wenn du es nicht nebenläufig machst, blockiert halt die Ausführung des Moduls bis deine Schleife zuende ist
    STARFACE Quality Assurance

    Bug gefunden? Hier melden!
    Featurewunsch oder Verbesserungsvorschlag? Trage es in unserem Feature Request Portal ein!
    Unsere Knowledge-Base für STARFACE findet ihr hier!

  5. #5
    STARFACE Admin

    Registriert seit
    16.07.2013
    Beiträge
    107

    Standard

    Ich forke nun in eine andere funktion, hier habe ich eine schleife und prüfe immer ob der channel noch offen ist, leider sagt er immer direkt das der channel zu ist, das versteh ich nicht, muss ich irgendwie den Channelstatus vererben in die Funktion?

  6. #6
    STARFACE Expert
    Benutzerbild von nucom
    Registriert seit
    11.12.2012
    Ort
    9443 Widnau
    Beiträge
    1.453

    Standard

    Hallo Jremme

    Du kannst auch einfach Prüfen, ob die Record-Datei noch in Verwendung ist.

    lsof -n [Datei] | wc -l

    Wenn Nummer > 0 ==> Datei in Verwendung.

    (Vorsicht! während des Recordvorganges liegt die Datei noch nicht als .wav im Verzeichnis, sondern in zwei Einzelteilen [Recordname].in [Recordname].out)

    Ich forke nun in eine andere funktion, hier habe ich eine schleife und prüfe immer ob der channel noch offen ist, leider sagt er immer direkt das der channel zu ist, das versteh ich nicht, muss ich irgendwie den Channelstatus vererben in die Funktion?
    Das Problem ist, wenn du auf dem Fork läufst, und das HauptThread, durch welcher das Modul ausgelöst wurde mit dem Modul fertig ist, verschwindet der Call aus dem context des Moduls. Somit gibt das isChannelUp ein False zurück.

    Die STARFACE hat vor einer weile mal eine Modulfunktion entfernt, welche dir den Status eines beliebigen Calls angeben konnte.
    Sowas ähnliches gibt es aboer noch im Tab UCI 3.0 ==> Call.getCallState.
    Wenn du keine eigenen Bausteine Bauen kannst/willst kannst du sonst die CallUUID via einem asterisk Command auslesen, und damit versuchen den Ruf verfolgen.

    Aber ich glaube in deinem Fall ist es ja ausreichend, zu wissen, ob der Record noch in Verwendung ist, oder nicht.

    MfG

    Fabian
    Modulhersteller aus der Schweiz
    __________________________________________________ ________
    STARFACE Excellence Partner: Info | Certified Module Creator Kontakt

  7. #7
    STARFACE Admin

    Registriert seit
    16.07.2013
    Beiträge
    107

    Standard

    Call.getCallState braucht auch einen User, ich weiss allerdings noch nicht welcher User das Telefonat nimmt da es auf eine Gruppe geht

    Ich lass das einfach sein

    Danke für die Hilfe.

Ähnliche Themen

  1. Incomming calls not working, when outgoing well. CallManager <unknown> records
    Von Aleksey im Forum STARFACE setup & administration
    Antworten: 1
    Letzter Beitrag: 03.10.2013, 14:46

Lesezeichen

Forumregeln

  • Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
  • Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
  • Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
  • Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
  •