Задать вопрос
@Kle6800

Сбрасываеться сессия при использовании ESL?

Можете подсказать дропаеться сессия при использование ESL
Вызов на пользователя 303 приходит но сразу сбрасываеться

package main

import (
	"fmt"
	"log"
	"github.com/fiorix/go-eventsocket/eventsocket"
	"github.com/satori/go.uuid"
)


var welcomeFile = "/usr/local/freeswitch/sounds/24Broadcaster.wav"
const dest = "sofia/internal/303%test.fs"
const dialplan = "&socket(localhost:9090 async)"

func answer (ac *eventsocket.Connection,uuid string) {
	ac.Execute("answer", "", false)
	fmt.Println(uuid)
	//ac.Execute("playback", welcomeFile, true)
	ac.Execute("playback", welcomeFile, false);
	fmt.Println(uuid,"клиент сессия ")
}
func main() {
	c, err := eventsocket.Dial("localhost:8021", "ClueCon")
	if err != nil {
		log.Fatal(err)
	}
	c.Send("connect")
	c.Send("myevents")
	c.Send("events plain ALL")
	u := uuid.NewV1()
	uuid := u.String()
	c.Send(fmt.Sprintf("bgapi originate %s %s", dest, dialplan))
	for {
		ev, err := c.ReadEvent()
		if err != nil {
			//log.Fatal(err)
			return
		}
		ev.PrettyPrint()
		var hangup_cause string
		if ev.Get("Event-Name") == "CHANNEL_ANSWER" {
			fmt.Println("Клиент ответил")
			 go answer(c,uuid);
			return
		} else if ev.Get("Answer-State") == "hangup" {
			hangup_cause = ev.Get("Hangup-Cause")
			fmt.Println(hangup_cause,"done")
			return
		}
	}
	c.Close()
}
  • Вопрос задан
  • 203 просмотра
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
func answer - это делается на сервере или в диалплане, а не в клиенте
посмотрите примеры клиента и сервера отсюда
https://github.com/fiorix/go-eventsocket/tree/mast...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы