123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- package app
- import (
- "fmt"
- "pms-api-go/internal/app/ami"
- httpServer "pms-api-go/internal/app/http_server"
- "pms-api-go/internal/app/mysql"
- "pms-api-go/internal/app/redis"
- socketio "pms-api-go/internal/app/socket_io"
- "pms-api-go/internal/app/status"
- "sync"
- "pms-api-go/pkg/i18n"
- "pms-api-go/pkg/lfshook"
- "gopkg.in/ini.v1"
- )
- // var once sync.Once
- var once sync.Once // 20241128 vtiger crm 对应
- func StartApp() {
- mysql.CreateDBInstance()
- redis.CreateRedisInstance()
- socketio.StartSocketIO()
- i18n.InitBundle()
- // initCronTask()
- go httpServer.StartRoute()
- /* 20230411 pms 删除 =======================================================================================================
- go ami.StartAMI(func() {
- lfshook.NewLogger().Info("ami callback function")
- // 首次连接才进行初始化
- once.Do(func() {
- status.InitAsterisk()
- // agi.InitPageingPlan(configs.ConfigGlobal.AsteriskPagingPath)
- })
- }, []func(event map[string]string){})
- * ========================================================================================================================= */
- // go agi.StartAGI()
- // go systeminfo.SendMessage() // 20230411 pms 删除
- // 启动插件程序
- // go plugin.StartUP() // 20230411 pms 删除
- // /* 20241128 vtiger crm 对应 =======================================================================================================
- PmsConfPath := "/etc/asterisk/pms_api.conf"
- pmsCfg, pmsErr := ini.Load(PmsConfPath)
- if pmsErr != nil {
- lfshook.NewLogger().Error(pmsErr)
- return
- }
- PmsEnabled := pmsCfg.Section("general").Key("enable").String()
- ApiType := pmsCfg.Section("general").Key("apitype").String()
- if PmsEnabled == "" || ApiType == "" {
- lfshook.NewLogger().Error("/etc/asterisk/pms_api.conf not set enabled or apitype")
- return
- }
- /* **************************************************************************
- // 先暂时都使用一个配置文件 pms_api.conf
- VtigerConfPath := "/etc/asterisk/vtiger_api.conf"
- vtigerCfg, vtigerErr := ini.Load(VtigerConfPath)
- if vtigerErr != nil {
- lfshook.NewLogger().Error(vtigerErr)
- return
- }
- VtigerEnabled := vtigerCfg.Section("general").Key("enabled").String()
- if VtigerEnabled == "" {
- lfshook.NewLogger().Error("/etc/asterisk/vtiger_api.conf not set enabled")
- return
- }
- if VtigerEnabled == "yes" && PmsEnabled == "no" { // pms基本是数据库操作,但是有个叫醒,会产生事件,所以当 pms 开启时,不能开启 vtiger
- // ************************************************************************** */
- fmt.Println("ApiType = ", ApiType)
- if ApiType == "CRM_vtiger" || ApiType == "CRM_zoho" {
- go ami.StartAMI(func() {
- lfshook.NewLogger().Info("ami callback function")
- // 首次连接才进行初始化
- once.Do(func() {
- status.InitAsterisk()
- // agi.InitPageingPlan(configs.ConfigGlobal.AsteriskPagingPath)
- })
- }, []func(event map[string]string){}, ApiType)
- }
- // * ========================================================================================================================= */
- }
|