├── freeswitch-xml-curl
├── README.md
└── src
│ └── main
│ └── java
│ └── com
│ └── atomscat
│ └── freeswitch
│ └── xml
│ ├── package-info.java
│ ├── domain
│ ├── directory
│ │ ├── package-info.java
│ │ ├── user
│ │ │ ├── Users.java
│ │ │ └── User.java
│ │ ├── group
│ │ │ ├── Groups.java
│ │ │ └── Group.java
│ │ ├── param
│ │ │ ├── Params.java
│ │ │ ├── Param.java
│ │ │ └── ParamEnum.java
│ │ ├── gateway
│ │ │ ├── Gateways.java
│ │ │ └── Gateway.java
│ │ ├── variable
│ │ │ ├── Variable.java
│ │ │ ├── Variables.java
│ │ │ └── VariableEnum.java
│ │ └── Domain.java
│ ├── configuration
│ │ ├── package-info.java
│ │ ├── sofia
│ │ │ ├── aliase
│ │ │ │ ├── Aliases.java
│ │ │ │ └── Alias.java
│ │ │ ├── domain
│ │ │ │ ├── Domains.java
│ │ │ │ └── Domain.java
│ │ │ ├── setting
│ │ │ │ └── Settings.java
│ │ │ ├── gateway
│ │ │ │ ├── Gateways.java
│ │ │ │ └── Gateway.java
│ │ │ ├── Param.java
│ │ │ ├── profile
│ │ │ │ ├── Profiles.java
│ │ │ │ └── Profile.java
│ │ │ ├── GlobalSettings.java
│ │ │ └── Sofia.java
│ │ ├── ivr
│ │ │ ├── Menus.java
│ │ │ ├── Ivr.java
│ │ │ └── Entry.java
│ │ └── Configuration.java
│ ├── dialplan
│ │ ├── Extension.java
│ │ ├── Condition.java
│ │ ├── Action.java
│ │ └── Context.java
│ └── XmlCurl.java
│ ├── service
│ └── XmlCurlService.java
│ ├── constant
│ ├── ConfName.java
│ └── SectionNames.java
│ ├── handler
│ └── XmlCurlHandler.java
│ ├── utils
│ └── BasicAuthenticationUtil.java
│ ├── exception
│ └── ParserException.java
│ ├── annotation
│ └── XmlCurlSectionName.java
│ └── parser
│ └── XmlCurlParser.java
├── _config.yml
├── freeswitch-xml-curl-spring-boot-starter
├── README.md
├── src
│ └── main
│ │ ├── resources
│ │ └── META-INF
│ │ │ └── spring.factories
│ │ └── java
│ │ └── com
│ │ └── atomscat
│ │ └── freeswitch
│ │ └── xml
│ │ ├── handler
│ │ └── SimpleXmlCurlHandler.java
│ │ └── config
│ │ └── FreeswitchXmlCurlAutoConfiguration.java
└── pom.xml
├── doc
├── img
│ ├── wechat.jpg
│ ├── dingding.JPG
│ ├── opensips-fs.png
│ ├── opensips-fs-app.png
│ ├── opensips-fs-tandem.png
│ ├── opensips-register-fs.png
│ └── opensips-fs-rtpengine.png
├── DeploymentPlan2.md
├── README.md
└── Maven.md
├── OSSRH-72998
├── src
│ └── main
│ │ └── java
│ │ └── com
│ │ └── atomscat
│ │ └── Test.java
└── pom.xml
├── opensips-event-mi
└── src
│ └── main
│ ├── java
│ └── com
│ │ └── atomscat
│ │ └── opensips
│ │ ├── event
│ │ ├── package-info.java
│ │ ├── EventClientCommand.java
│ │ ├── EventClientService.java
│ │ ├── listener
│ │ │ ├── ServerEventListener.java
│ │ │ └── ServerConnectionListener.java
│ │ ├── service
│ │ │ └── AbstractServiceCommand.java
│ │ ├── handler
│ │ │ ├── Context.java
│ │ │ └── IEventApi.java
│ │ ├── EventClient.java
│ │ └── option
│ │ │ └── ConnectState.java
│ │ ├── mi
│ │ ├── entitys
│ │ │ ├── package-info.java
│ │ │ ├── response
│ │ │ │ └── MiEventSubscribeResp.java
│ │ │ ├── MiJsonError.java
│ │ │ ├── NetString.java
│ │ │ ├── enums
│ │ │ │ ├── MiJsonUriEnum.java
│ │ │ │ └── OpenSipsEventEnum.java
│ │ │ └── request
│ │ │ │ ├── MiEventSubscribeReq.java
│ │ │ │ └── MiUlShowContactReq.java
│ │ ├── package-info.java
│ │ └── service
│ │ │ ├── MiUlShowContactService.java
│ │ │ └── MiEventSubscribeService.java
│ │ └── util
│ │ ├── ArrayUtils.java
│ │ ├── RandomUtils.java
│ │ ├── Validate.java
│ │ └── RemotingUtil.java
│ └── resources
│ └── META-INF
│ └── spring.factories
├── spring-boot-common
├── spring-boot-common-election
│ ├── src
│ │ ├── main
│ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── atomscat
│ │ │ │ └── spring
│ │ │ │ └── boot
│ │ │ │ └── common
│ │ │ │ ├── package-info.java
│ │ │ │ └── param
│ │ │ │ ├── ElectionResultParam.java
│ │ │ │ ├── BaseElectionConsumerParam.java
│ │ │ │ └── BaseElectionProducerParam.java
│ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── atomscat
│ │ │ └── spring
│ │ │ └── boot
│ │ │ └── common
│ │ │ ├── package-info.java
│ │ │ ├── param
│ │ │ ├── FreeswitchProducerParam.java
│ │ │ └── SoftswitchGatewayConsumerParam.java
│ │ │ └── util
│ │ │ └── MatchElectionTest.java
│ └── pom.xml
├── spring-boot-common-core
│ └── src
│ │ └── main
│ │ ├── resources
│ │ └── META-INF
│ │ │ └── spring.factories
│ │ └── java
│ │ └── com
│ │ └── atomscat
│ │ └── spring
│ │ └── boot
│ │ └── common
│ │ ├── config
│ │ └── SpringBootCommonAutoConfiguration.java
│ │ ├── constant
│ │ ├── NumberConstant.java
│ │ └── StringConstant.java
│ │ └── util
│ │ ├── LocalDateTimeUtil.java
│ │ └── ExecutorHelper.java
├── spring-boot-common-aop
│ ├── src
│ │ └── main
│ │ │ └── java
│ │ │ └── com
│ │ │ └── atomscat
│ │ │ └── spring
│ │ │ └── boot
│ │ │ └── common
│ │ │ └── aop
│ │ │ ├── enums
│ │ │ └── LoggingLevel.java
│ │ │ └── annotation
│ │ │ ├── Logging.java
│ │ │ └── RedisLock.java
│ └── pom.xml
└── pom.xml
├── owt-server-client
├── README.md
├── src
│ └── main
│ │ └── java
│ │ └── com
│ │ └── atomscat
│ │ └── owt
│ │ └── server
│ │ └── client
│ │ └── package-info.java
└── pom.xml
├── freeswitch-cdr-spring-boot-starter
├── src
│ └── main
│ │ ├── resources
│ │ └── META-INF
│ │ │ └── spring.factories
│ │ └── java
│ │ └── com
│ │ └── atomscat
│ │ └── freeswitch
│ │ └── cdr
│ │ └── spring
│ │ └── boot
│ │ └── starter
│ │ ├── handler
│ │ └── SimpleCdrHandler.java
│ │ └── config
│ │ └── FreeswitchCdrAutoConfiguration.java
└── pom.xml
├── opensips-event-mi-spring-boot-starter
├── src
│ └── main
│ │ ├── resources
│ │ └── META-INF
│ │ │ └── spring.factories
│ │ └── java
│ │ └── com
│ │ └── atomscat
│ │ └── opensips
│ │ └── spring
│ │ └── boot
│ │ └── starter
│ │ ├── EnableOpensipsAutoConfiguration.java
│ │ ├── handler
│ │ ├── AbstractClientEventHandler.java
│ │ ├── AbstractClientConnectHandler.java
│ │ ├── ClientEventHandler.java
│ │ ├── ClientConnectHandler.java
│ │ ├── DefaultClientEventHandler.java
│ │ ├── DefaultClientConnectHandler.java
│ │ └── EventClientOptionHandler.java
│ │ ├── template
│ │ └── DefaultEventClientOptionHandlerTemplate.java
│ │ └── propeties
│ │ └── ServerProperties.java
└── pom.xml
├── freeswitch-esl-spring-boot-starter
└── src
│ └── main
│ ├── resources
│ └── META-INF
│ │ └── spring.factories
│ └── java
│ └── com
│ └── atomscat
│ └── freeswitch
│ └── esl
│ └── spring
│ └── boot
│ └── starter
│ ├── handler
│ ├── AbstractMqEventHandler.java
│ ├── AbstractMqLoggingHandler.java
│ ├── MqCommandsClient.java
│ ├── AbstractOutBoundEventHandler.java
│ ├── AbstractOutBoundConnectHandler.java
│ ├── MqEventHandler.java
│ ├── MqLoggingHandler.java
│ ├── DefaultMqEventHandler.java
│ ├── DefaultMqLoggingHandler.java
│ ├── OutBoundConnectHandler.java
│ ├── OutBoundEventHandler.java
│ ├── InboundClientOptionHandler.java
│ ├── OutboundServerOptionHandler.java
│ ├── DefaultOutBoundEventHandler.java
│ ├── DefaultOutBoundConnectHandler.java
│ ├── AbstractInboundEventHandler.java
│ └── DefaultInboundEventHandler.java
│ ├── propeties
│ └── AmqpClientProperties.java
│ ├── template
│ ├── DefaultInboundClientOptionHandlerTemplate.java
│ └── DefaultOutboundServerOptionHandlerTemplate.java
│ ├── annotation
│ └── EslEventName.java
│ └── EnableFreeswitchEslAutoConfiguration.java
├── freeswitch-esl
└── src
│ ├── main
│ └── java
│ │ └── com
│ │ └── atomscat
│ │ └── freeswitch
│ │ └── esl
│ │ ├── OutboundServerCommand.java
│ │ ├── constant
│ │ ├── VariableConstant.java
│ │ └── EslConstant.java
│ │ ├── OutboundEventListener.java
│ │ ├── outbound
│ │ ├── AbstractOutboundServerCommand.java
│ │ └── option
│ │ │ └── ConnectState.java
│ │ ├── util
│ │ ├── ArrayUtils.java
│ │ ├── RandomUtils.java
│ │ ├── VariableUtil.java
│ │ ├── Validate.java
│ │ └── RemotingUtil.java
│ │ ├── helper
│ │ └── ChannelStateMachine.java
│ │ ├── exception
│ │ ├── OutboundServerException.java
│ │ ├── EslDecoderException.java
│ │ └── InboundTimeoutExcetion.java
│ │ ├── InboundClientService.java
│ │ ├── OutboundServerService.java
│ │ ├── inbound
│ │ ├── listener
│ │ │ ├── EventListener.java
│ │ │ └── ServerOptionListener.java
│ │ └── option
│ │ │ └── ConnectState.java
│ │ ├── ServerConnectionListener.java
│ │ ├── builder
│ │ └── Command.java
│ │ └── InboundEventListener.java
│ └── test
│ └── java
│ └── com
│ └── atomscat
│ └── freeswitch
│ └── esl
│ ├── builder
│ └── CommandTest.java
│ └── transport
│ └── util
│ └── ByteBuilderTest.java
├── .travis.yml
├── freeswitch-cdr
└── src
│ └── main
│ └── java
│ └── com
│ └── atomscat
│ └── freeswitch
│ └── cdr
│ ├── domain
│ ├── CallStats.java
│ ├── HoldRecord.java
│ ├── Originatee.java
│ ├── Originator.java
│ ├── AppLog.java
│ ├── Hold.java
│ ├── Origination.java
│ ├── Audio.java
│ ├── Application.java
│ ├── Extension.java
│ ├── ChannelData.java
│ ├── ErrorPeriod.java
│ ├── Callflow.java
│ ├── Outbound.java
│ ├── Times.java
│ ├── ErrorLog.java
│ ├── OriginateeCallerProfile.java
│ ├── OriginatorCallerProfile.java
│ ├── OriginationCallerProfile.java
│ ├── Variables.java
│ ├── Cdr.java
│ ├── CallerProfile.java
│ └── Inbound.java
│ ├── service
│ └── CdrService.java
│ ├── handler
│ └── CdrHandler.java
│ ├── exception
│ └── ParserException.java
│ ├── controller
│ └── CdrController.java
│ └── util
│ ├── NumberUtil.java
│ └── CdrDecodeUtil.java
├── .gitignore
├── freeswitch-esl-example
└── README.md
├── freeswitch-esl-spring-boot-starter-example
├── README.md
└── src
│ ├── main
│ ├── java
│ │ └── com
│ │ │ └── atomscat
│ │ │ └── freeswitch
│ │ │ └── esl
│ │ │ └── spring
│ │ │ └── boot
│ │ │ └── starter
│ │ │ └── example
│ │ │ ├── udp
│ │ │ ├── InitStart.java
│ │ │ ├── UdpServerHandler.java
│ │ │ └── UdpServerHandler2.java
│ │ │ ├── config
│ │ │ └── HazelcastConfiguration.java
│ │ │ ├── handler
│ │ │ └── InboundDetectedSpeechSendSocketHandler.java
│ │ │ ├── controller
│ │ │ └── FreeSwitchController.java
│ │ │ ├── ExampleInboundClientOptionHandler.java
│ │ │ └── ExampleApplication.java
│ └── resources
│ │ └── application.yml
│ └── test
│ └── java
│ └── com
│ └── atomscat
│ └── freeswitch
│ └── esl
│ └── spring
│ └── boot
│ └── starter
│ └── example
│ └── ExampleApplicationTests.java
├── SECURITY.md
├── freeswitch-cdr-spring-boot-starter-example
├── src
│ └── main
│ │ └── java
│ │ └── com
│ │ └── atomscat
│ │ └── freeswitch
│ │ └── cdr
│ │ └── spring
│ │ └── boot
│ │ └── starter
│ │ └── example
│ │ ├── ExampleApplication.java
│ │ └── ExampleCdrHandler.java
└── pom.xml
└── softswitch-all-spring-boot-starter-example
├── src
├── main
│ ├── java
│ │ └── com
│ │ │ └── atomscat
│ │ │ └── freeswitch
│ │ │ └── esl
│ │ │ └── spring
│ │ │ └── boot
│ │ │ └── starter
│ │ │ └── example
│ │ │ ├── handler
│ │ │ ├── FsCdrHandler.java
│ │ │ ├── InboundChannelHangupSendSocketHandler.java
│ │ │ └── FsPhrasesXmlCurlHandler.java
│ │ │ ├── controller
│ │ │ └── FreeSwitchController.java
│ │ │ ├── ExampleInboundClientOptionHandler.java
│ │ │ └── ExampleApplication.java
│ └── resources
│ │ └── redisson
│ │ └── redisson-dev.yml
└── test
│ └── java
│ └── com
│ └── atomscat
│ └── freeswitch
│ └── esl
│ └── spring
│ └── boot
│ └── starter
│ └── example
│ └── ExampleApplicationTests.java
└── README.md
/freeswitch-xml-curl/README.md:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/_config.yml:
--------------------------------------------------------------------------------
1 | theme: jekyll-theme-cayman
--------------------------------------------------------------------------------
/freeswitch-xml-curl-spring-boot-starter/README.md:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/doc/img/wechat.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Atoms-Cat/softswitch-gateway/HEAD/doc/img/wechat.jpg
--------------------------------------------------------------------------------
/doc/img/dingding.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Atoms-Cat/softswitch-gateway/HEAD/doc/img/dingding.JPG
--------------------------------------------------------------------------------
/OSSRH-72998/src/main/java/com/atomscat/Test.java:
--------------------------------------------------------------------------------
1 | package com.atomscat;
2 |
3 | public class Test {
4 | }
5 |
--------------------------------------------------------------------------------
/doc/img/opensips-fs.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Atoms-Cat/softswitch-gateway/HEAD/doc/img/opensips-fs.png
--------------------------------------------------------------------------------
/opensips-event-mi/src/main/java/com/atomscat/opensips/event/package-info.java:
--------------------------------------------------------------------------------
1 | package com.atomscat.opensips.event;
--------------------------------------------------------------------------------
/doc/img/opensips-fs-app.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Atoms-Cat/softswitch-gateway/HEAD/doc/img/opensips-fs-app.png
--------------------------------------------------------------------------------
/freeswitch-xml-curl/src/main/java/com/atomscat/freeswitch/xml/package-info.java:
--------------------------------------------------------------------------------
1 | package com.atomscat.freeswitch.xml;
--------------------------------------------------------------------------------
/opensips-event-mi/src/main/java/com/atomscat/opensips/mi/entitys/package-info.java:
--------------------------------------------------------------------------------
1 | package com.atomscat.opensips.mi.entitys;
--------------------------------------------------------------------------------
/doc/img/opensips-fs-tandem.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Atoms-Cat/softswitch-gateway/HEAD/doc/img/opensips-fs-tandem.png
--------------------------------------------------------------------------------
/doc/img/opensips-register-fs.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Atoms-Cat/softswitch-gateway/HEAD/doc/img/opensips-register-fs.png
--------------------------------------------------------------------------------
/doc/img/opensips-fs-rtpengine.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Atoms-Cat/softswitch-gateway/HEAD/doc/img/opensips-fs-rtpengine.png
--------------------------------------------------------------------------------
/freeswitch-xml-curl/src/main/java/com/atomscat/freeswitch/xml/domain/directory/package-info.java:
--------------------------------------------------------------------------------
1 | package com.atomscat.freeswitch.xml.domain.directory;
--------------------------------------------------------------------------------
/spring-boot-common/spring-boot-common-election/src/main/java/com/atomscat/spring/boot/common/package-info.java:
--------------------------------------------------------------------------------
1 | package com.atomscat.spring.boot.common;
--------------------------------------------------------------------------------
/spring-boot-common/spring-boot-common-election/src/test/java/com/atomscat/spring/boot/common/package-info.java:
--------------------------------------------------------------------------------
1 | package com.atomscat.spring.boot.common;
--------------------------------------------------------------------------------
/freeswitch-xml-curl/src/main/java/com/atomscat/freeswitch/xml/domain/configuration/package-info.java:
--------------------------------------------------------------------------------
1 | package com.atomscat.freeswitch.xml.domain.configuration;
--------------------------------------------------------------------------------
/doc/DeploymentPlan2.md:
--------------------------------------------------------------------------------
1 | ## register to opensips load balancing freeswitch
2 |
3 | 
4 |
5 | ### 1. configuration opensips.cfg
6 |
7 |
--------------------------------------------------------------------------------
/owt-server-client/README.md:
--------------------------------------------------------------------------------
1 | #1、management api
2 | you see request demo:
3 | https://www.apifox.cn/apidoc/shared-62d670c8-92d6-498c-9abe-7e911cb85a44/api-11520186
4 |
5 |
--------------------------------------------------------------------------------
/owt-server-client/src/main/java/com/atomscat/owt/server/client/package-info.java:
--------------------------------------------------------------------------------
1 | /**
2 | * todo
3 | * @author howell
4 | */
5 | package com.atomscat.owt.server.client;
--------------------------------------------------------------------------------
/opensips-event-mi/src/main/java/com/atomscat/opensips/event/EventClientCommand.java:
--------------------------------------------------------------------------------
1 | package com.atomscat.opensips.event;
2 |
3 | /**
4 | * @author th158
5 | */
6 | public interface EventClientCommand {
7 | }
8 |
--------------------------------------------------------------------------------
/freeswitch-xml-curl-spring-boot-starter/src/main/resources/META-INF/spring.factories:
--------------------------------------------------------------------------------
1 | org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
2 | com.atomscat.freeswitch.xml.config.FreeswitchXmlCurlAutoConfiguration
--------------------------------------------------------------------------------
/opensips-event-mi/src/main/resources/META-INF/spring.factories:
--------------------------------------------------------------------------------
1 | #org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
2 | #com.atomscat.freeswitch.esl.spring.boot.starter.config.FreeswitchEslAutoConfiguration
3 |
--------------------------------------------------------------------------------
/freeswitch-cdr-spring-boot-starter/src/main/resources/META-INF/spring.factories:
--------------------------------------------------------------------------------
1 | org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
2 | com.atomscat.freeswitch.cdr.spring.boot.starter.config.FreeswitchCdrAutoConfiguration
--------------------------------------------------------------------------------
/opensips-event-mi-spring-boot-starter/src/main/resources/META-INF/spring.factories:
--------------------------------------------------------------------------------
1 | org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
2 | com.atomscat.opensips.spring.boot.starter.config.OpensipsAutoConfiguration
3 |
--------------------------------------------------------------------------------
/spring-boot-common/spring-boot-common-core/src/main/resources/META-INF/spring.factories:
--------------------------------------------------------------------------------
1 | org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
2 | com.atomscat.spring.boot.common.config.SpringBootCommonAutoConfiguration
3 |
--------------------------------------------------------------------------------
/freeswitch-esl-spring-boot-starter/src/main/resources/META-INF/spring.factories:
--------------------------------------------------------------------------------
1 | org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
2 | com.atomscat.freeswitch.esl.spring.boot.starter.config.FreeswitchEslAutoConfiguration
3 |
--------------------------------------------------------------------------------
/opensips-event-mi-spring-boot-starter/src/main/java/com/atomscat/opensips/spring/boot/starter/EnableOpensipsAutoConfiguration.java:
--------------------------------------------------------------------------------
1 | package com.atomscat.opensips.spring.boot.starter;
2 |
3 | public @interface EnableOpensipsAutoConfiguration {
4 | }
5 |
--------------------------------------------------------------------------------
/freeswitch-esl/src/main/java/com/atomscat/freeswitch/esl/OutboundServerCommand.java:
--------------------------------------------------------------------------------
1 | package com.atomscat.freeswitch.esl;
2 |
3 | /**
4 | * @author everyone
5 | * @since 1.6.0
6 | */
7 | public interface OutboundServerCommand {
8 |
9 |
10 | }
11 |
--------------------------------------------------------------------------------
/freeswitch-esl-spring-boot-starter/src/main/java/com/atomscat/freeswitch/esl/spring/boot/starter/handler/AbstractMqEventHandler.java:
--------------------------------------------------------------------------------
1 | package com.atomscat.freeswitch.esl.spring.boot.starter.handler;
2 |
3 |
4 | public abstract class AbstractMqEventHandler implements MqEventHandler {
5 |
6 |
7 | }
8 |
--------------------------------------------------------------------------------
/freeswitch-esl-spring-boot-starter/src/main/java/com/atomscat/freeswitch/esl/spring/boot/starter/handler/AbstractMqLoggingHandler.java:
--------------------------------------------------------------------------------
1 | package com.atomscat.freeswitch.esl.spring.boot.starter.handler;
2 |
3 |
4 | public abstract class AbstractMqLoggingHandler implements MqLoggingHandler {
5 |
6 | }
7 |
--------------------------------------------------------------------------------
/opensips-event-mi/src/main/java/com/atomscat/opensips/mi/package-info.java:
--------------------------------------------------------------------------------
1 | /**
2 | * http://192.168.10.109:8888/json/ul_dump?params=brief:,1006:
3 | * http://192.168.10.109:8888/json/ul_show_contact?table=location
4 | * http://192.168.10.109:8888/json/get_statistics?params=net:,uri:
5 | */
6 | package com.atomscat.opensips.mi;
--------------------------------------------------------------------------------
/spring-boot-common/spring-boot-common-aop/src/main/java/com/atomscat/spring/boot/common/aop/enums/LoggingLevel.java:
--------------------------------------------------------------------------------
1 | package com.atomscat.spring.boot.common.aop.enums;
2 |
3 | public enum LoggingLevel {
4 | TRACE,
5 | DEBUG,
6 | INFO,
7 | WARN,
8 | ERROR;
9 |
10 | LoggingLevel() {
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/freeswitch-esl/src/test/java/com/atomscat/freeswitch/esl/builder/CommandTest.java:
--------------------------------------------------------------------------------
1 | package com.atomscat.freeswitch.esl.builder;
2 |
3 | import junit.framework.TestCase;
4 |
5 | public class CommandTest extends TestCase {
6 |
7 | public void testCmd() {
8 | System.out.println(Command.cmd("").toString());
9 | }
10 | }
--------------------------------------------------------------------------------
/freeswitch-esl-spring-boot-starter/src/main/java/com/atomscat/freeswitch/esl/spring/boot/starter/handler/MqCommandsClient.java:
--------------------------------------------------------------------------------
1 | package com.atomscat.freeswitch.esl.spring.boot.starter.handler;
2 |
3 |
4 |
5 | public interface MqCommandsClient {
6 |
7 | void sendCommands(String routingKey, String command, String arg) throws Exception;
8 | }
9 |
--------------------------------------------------------------------------------
/freeswitch-esl/src/main/java/com/atomscat/freeswitch/esl/constant/VariableConstant.java:
--------------------------------------------------------------------------------
1 | package com.atomscat.freeswitch.esl.constant;
2 |
3 | /**
4 | * @author everyone
5 | * @version 1.5.0
6 | */
7 | public class VariableConstant {
8 |
9 | public static final String PREFIX = "variable_";
10 |
11 | private VariableConstant() {
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/opensips-event-mi/src/main/java/com/atomscat/opensips/event/EventClientService.java:
--------------------------------------------------------------------------------
1 | package com.atomscat.opensips.event;
2 |
3 | /**
4 | * @author th158
5 | */
6 | public interface EventClientService {
7 | /**
8 | *
start.
9 | */
10 | void start();
11 |
12 | /**
13 | * shutdown.
14 | */
15 | void shutdown();
16 | }
17 |
--------------------------------------------------------------------------------
/spring-boot-common/spring-boot-common-election/src/test/java/com/atomscat/spring/boot/common/param/FreeswitchProducerParam.java:
--------------------------------------------------------------------------------
1 | package com.atomscat.spring.boot.common.param;
2 |
3 | import lombok.Data;
4 | import lombok.experimental.Accessors;
5 |
6 | @Data
7 | @Accessors(chain = true)
8 | public class FreeswitchProducerParam extends BaseElectionProducerParam {
9 | }
10 |
--------------------------------------------------------------------------------
/opensips-event-mi/src/main/java/com/atomscat/opensips/event/listener/ServerEventListener.java:
--------------------------------------------------------------------------------
1 | package com.atomscat.opensips.event.listener;
2 |
3 |
4 | import com.atomscat.opensips.event.handler.Context;
5 |
6 | public interface ServerEventListener {
7 |
8 | void handleEvent(Context context, Object msg);
9 |
10 | void onConnect(Context context, Object msg);
11 |
12 | }
13 |
--------------------------------------------------------------------------------
/spring-boot-common/spring-boot-common-election/src/test/java/com/atomscat/spring/boot/common/param/SoftswitchGatewayConsumerParam.java:
--------------------------------------------------------------------------------
1 | package com.atomscat.spring.boot.common.param;
2 |
3 | import lombok.Data;
4 | import lombok.experimental.Accessors;
5 |
6 | @Data
7 | @Accessors(chain = true)
8 | public class SoftswitchGatewayConsumerParam extends BaseElectionConsumerParam {
9 | }
10 |
--------------------------------------------------------------------------------
/opensips-event-mi-spring-boot-starter/src/main/java/com/atomscat/opensips/spring/boot/starter/handler/AbstractClientEventHandler.java:
--------------------------------------------------------------------------------
1 | package com.atomscat.opensips.spring.boot.starter.handler;
2 |
3 | import org.slf4j.Logger;
4 | import org.slf4j.LoggerFactory;
5 |
6 | public abstract class AbstractClientEventHandler implements ClientEventHandler {
7 | protected final Logger log = LoggerFactory.getLogger(getClass());
8 | }
9 |
--------------------------------------------------------------------------------
/opensips-event-mi-spring-boot-starter/src/main/java/com/atomscat/opensips/spring/boot/starter/handler/AbstractClientConnectHandler.java:
--------------------------------------------------------------------------------
1 | package com.atomscat.opensips.spring.boot.starter.handler;
2 |
3 | import org.slf4j.Logger;
4 | import org.slf4j.LoggerFactory;
5 |
6 | public abstract class AbstractClientConnectHandler implements ClientConnectHandler {
7 | protected final Logger log = LoggerFactory.getLogger(getClass());
8 | }
9 |
--------------------------------------------------------------------------------
/.travis.yml:
--------------------------------------------------------------------------------
1 | language: java
2 |
3 | # Cobertura is not supported in JDK11 so you must downgrade the JDK that Travis uses if you want to use Cobertura with Travis.
4 | # See https://github.com/cobertura/cobertura/issues/381
5 | jdk:
6 | - openjdk8
7 |
8 | script: "mvn cobertura:cobertura"
9 |
10 | sudo: false # faster builds
11 |
12 | after_success:
13 | - bash <(curl -s https://codecov.io/bash) -t 4ed3590e-3c8c-48e5-a54e-1f14d47cc476
--------------------------------------------------------------------------------
/doc/README.md:
--------------------------------------------------------------------------------
1 | # doc index
2 |
3 | ### concept
4 |
5 | ---
6 |
7 | ### deploy
8 |
9 | #### [freeswitch 1.10.5 is installed based on Debian 10.10](softswitch/freeswitch/freeswitch-install-debian.md)
10 |
11 | ---
12 |
13 | ### actual combat
14 |
15 | #### [opensips-fs-tandem](doc/DeploymentPlan1.md)
16 |
17 | #### [opensips-register-fs](doc/DeploymentPlan3.md)
18 |
19 | #### [opensips-fs-rtpengine](doc/DeploymentPlan4.md) (recommend)
--------------------------------------------------------------------------------
/freeswitch-esl-spring-boot-starter/src/main/java/com/atomscat/freeswitch/esl/spring/boot/starter/handler/AbstractOutBoundEventHandler.java:
--------------------------------------------------------------------------------
1 | package com.atomscat.freeswitch.esl.spring.boot.starter.handler;
2 |
3 | import org.slf4j.Logger;
4 | import org.slf4j.LoggerFactory;
5 |
6 | public abstract class AbstractOutBoundEventHandler implements OutBoundEventHandler {
7 | protected final Logger log = LoggerFactory.getLogger(getClass());
8 | }
9 |
--------------------------------------------------------------------------------
/freeswitch-esl-spring-boot-starter/src/main/java/com/atomscat/freeswitch/esl/spring/boot/starter/handler/AbstractOutBoundConnectHandler.java:
--------------------------------------------------------------------------------
1 | package com.atomscat.freeswitch.esl.spring.boot.starter.handler;
2 |
3 | import org.slf4j.Logger;
4 | import org.slf4j.LoggerFactory;
5 |
6 | public abstract class AbstractOutBoundConnectHandler implements OutBoundConnectHandler {
7 | protected final Logger log = LoggerFactory.getLogger(getClass());
8 | }
9 |
--------------------------------------------------------------------------------
/opensips-event-mi/src/main/java/com/atomscat/opensips/mi/entitys/response/MiEventSubscribeResp.java:
--------------------------------------------------------------------------------
1 | package com.atomscat.opensips.mi.entitys.response;
2 |
3 | import lombok.Data;
4 |
5 | import java.io.Serializable;
6 |
7 | /**
8 | * @author : everyone
9 | * @version 1.0.0
10 | */
11 | @Data
12 | public class MiEventSubscribeResp implements Serializable {
13 | private static final long serialVersionUID = 1L;
14 |
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/freeswitch-cdr/src/main/java/com/atomscat/freeswitch/cdr/domain/CallStats.java:
--------------------------------------------------------------------------------
1 | package com.atomscat.freeswitch.cdr.domain;
2 |
3 | import lombok.Data;
4 | import lombok.experimental.Accessors;
5 |
6 | /**
7 | * CallStats class.
8 | *
9 | * @author : everyone
10 | * @version $Id: $Id
11 | */
12 | @Data
13 | @Accessors(chain = true)
14 | public class CallStats {
15 | private Audio audio;
16 | }
17 |
--------------------------------------------------------------------------------
/freeswitch-esl/src/main/java/com/atomscat/freeswitch/esl/OutboundEventListener.java:
--------------------------------------------------------------------------------
1 | package com.atomscat.freeswitch.esl;
2 |
3 | import com.atomscat.freeswitch.esl.outbound.handler.Context;
4 | import com.atomscat.freeswitch.esl.transport.event.EslEvent;
5 |
6 | public interface OutboundEventListener {
7 |
8 | void handleEslEvent(Context context, EslEvent event);
9 |
10 | void onConnect(Context context, EslEvent eslEvent);
11 |
12 | }
13 |
--------------------------------------------------------------------------------
/freeswitch-esl-spring-boot-starter/src/main/java/com/atomscat/freeswitch/esl/spring/boot/starter/handler/MqEventHandler.java:
--------------------------------------------------------------------------------
1 | package com.atomscat.freeswitch.esl.spring.boot.starter.handler;
2 |
3 | import com.rabbitmq.client.Channel;
4 |
5 | /**
6 | * mod_amqp TAP.Events
7 | * @author th158
8 | */
9 | public interface MqEventHandler {
10 |
11 | void handle(Channel channel, String payload, Long tag, String contentType) throws Exception;
12 | }
13 |
--------------------------------------------------------------------------------
/freeswitch-xml-curl/src/main/java/com/atomscat/freeswitch/xml/service/XmlCurlService.java:
--------------------------------------------------------------------------------
1 | package com.atomscat.freeswitch.xml.service;
2 |
3 | import jakarta.servlet.http.HttpServletRequest;
4 |
5 | /**
6 | * XmlCurlService interface.
7 | *
8 | * @author : everyone
9 | * @version $Id: $Id
10 | */
11 | public interface XmlCurlService {
12 |
13 | String handle(HttpServletRequest request);
14 |
15 | }
16 |
--------------------------------------------------------------------------------
/freeswitch-esl-spring-boot-starter/src/main/java/com/atomscat/freeswitch/esl/spring/boot/starter/handler/MqLoggingHandler.java:
--------------------------------------------------------------------------------
1 | package com.atomscat.freeswitch.esl.spring.boot.starter.handler;
2 |
3 | import com.rabbitmq.client.Channel;
4 |
5 | /**
6 | * mod_amqp TAP.Logging
7 | * @author th158
8 | */
9 | public interface MqLoggingHandler {
10 |
11 | void handle(Channel channel, String payload, Long tag, String contentType) throws Exception;
12 | }
13 |
--------------------------------------------------------------------------------
/opensips-event-mi-spring-boot-starter/src/main/java/com/atomscat/opensips/spring/boot/starter/handler/ClientEventHandler.java:
--------------------------------------------------------------------------------
1 | package com.atomscat.opensips.spring.boot.starter.handler;
2 |
3 |
4 | import com.atomscat.opensips.event.handler.Context;
5 |
6 | /**
7 | *
8 | */
9 | public interface ClientEventHandler {
10 |
11 | /**
12 | * @param context
13 | * @param msg
14 | */
15 | void handler(Context context, Object msg);
16 | }
17 |
--------------------------------------------------------------------------------
/opensips-event-mi/src/main/java/com/atomscat/opensips/event/service/AbstractServiceCommand.java:
--------------------------------------------------------------------------------
1 | package com.atomscat.opensips.event.service;
2 |
3 |
4 | import com.atomscat.opensips.event.option.EventClientOption;
5 |
6 | /**
7 | * @author everyone
8 | * @since 1.6.0
9 | */
10 | abstract class AbstractServiceCommand extends AbstractService {
11 |
12 | AbstractServiceCommand(EventClientOption option) {
13 | super(option);
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/opensips-event-mi/src/main/java/com/atomscat/opensips/mi/entitys/MiJsonError.java:
--------------------------------------------------------------------------------
1 | package com.atomscat.opensips.mi.entitys;
2 |
3 | import lombok.Data;
4 |
5 | import java.io.Serializable;
6 |
7 | /**
8 | * @author : everyone
9 | * @version 1.0.0
10 | */
11 | @Data
12 | public class MiJsonError implements Serializable {
13 | private static final long serialVersionUID = 1L;
14 |
15 | private String code;
16 |
17 | private String message;
18 | }
19 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | HELP.md
2 | target/
3 | !.mvn/wrapper/maven-wrapper.jar
4 |
5 | ### STS ###
6 | .apt_generated
7 | .classpath
8 | .factorypath
9 | .project
10 | .settings
11 | .springBeans
12 | .sts4-cache
13 |
14 | ### IntelliJ IDEA ###
15 | .idea
16 | *.iws
17 | *.iml
18 | *.ipr
19 |
20 | ### NetBeans ###
21 | /nbproject/private/
22 | /nbbuild/
23 | /dist/
24 | /nbdist/
25 | /.nb-gradle/
26 | /build/
27 |
28 | ### VS Code ###
29 | .vscode/
30 |
31 | pom.xml.versionsBackup
--------------------------------------------------------------------------------
/freeswitch-xml-curl/src/main/java/com/atomscat/freeswitch/xml/constant/ConfName.java:
--------------------------------------------------------------------------------
1 | package com.atomscat.freeswitch.xml.constant;
2 |
3 | /**
4 | * @author th158
5 | */
6 | public enum ConfName {
7 |
8 |
9 | IVR("ivr.conf"),
10 | SOFIA("sofia.conf");
11 |
12 | public final String name;
13 |
14 | public String getName() {
15 | return name;
16 | }
17 |
18 |
19 | ConfName(String name) {
20 | this.name = name;
21 | }
22 |
23 | }
24 |
--------------------------------------------------------------------------------
/spring-boot-common/spring-boot-common-election/src/main/java/com/atomscat/spring/boot/common/param/ElectionResultParam.java:
--------------------------------------------------------------------------------
1 | package com.atomscat.spring.boot.common.param;
2 |
3 | import lombok.Data;
4 | import lombok.experimental.Accessors;
5 |
6 | import java.util.List;
7 |
8 | /**
9 | * @author th158
10 | */
11 | @Data
12 | @Accessors(chain = true)
13 | public class ElectionResultParam{
14 |
15 | private K key;
16 |
17 | private List valueList;
18 | }
19 |
--------------------------------------------------------------------------------
/freeswitch-cdr/src/main/java/com/atomscat/freeswitch/cdr/domain/HoldRecord.java:
--------------------------------------------------------------------------------
1 | package com.atomscat.freeswitch.cdr.domain;
2 |
3 | import lombok.Data;
4 | import lombok.experimental.Accessors;
5 |
6 | import java.util.List;
7 |
8 | /**
9 | * HoldRecord class.
10 | *
11 | * @author : everyone
12 | * @version $Id: $Id
13 | */
14 | @Data
15 | @Accessors(chain = true)
16 | public class HoldRecord {
17 | private List holds;
18 | }
19 |
--------------------------------------------------------------------------------
/freeswitch-cdr/src/main/java/com/atomscat/freeswitch/cdr/domain/Originatee.java:
--------------------------------------------------------------------------------
1 | package com.atomscat.freeswitch.cdr.domain;
2 |
3 | import lombok.Data;
4 | import lombok.experimental.Accessors;
5 |
6 | /**
7 | * Originatee class.
8 | *
9 | * @author : everyone
10 | * @version $Id: $Id
11 | */
12 | @Data
13 | @Accessors(chain = true)
14 | public class Originatee {
15 | private OriginateeCallerProfile originateeCallerProfile;
16 | }
17 |
--------------------------------------------------------------------------------
/freeswitch-cdr/src/main/java/com/atomscat/freeswitch/cdr/domain/Originator.java:
--------------------------------------------------------------------------------
1 | package com.atomscat.freeswitch.cdr.domain;
2 |
3 | import lombok.Data;
4 | import lombok.experimental.Accessors;
5 |
6 | /**
7 | * Originator class.
8 | *
9 | * @author : everyone
10 | * @version $Id: $Id
11 | */
12 | @Data
13 | @Accessors(chain = true)
14 | public class Originator {
15 | private OriginatorCallerProfile originatorCallerProfile;
16 | }
17 |
--------------------------------------------------------------------------------
/freeswitch-cdr/src/main/java/com/atomscat/freeswitch/cdr/domain/AppLog.java:
--------------------------------------------------------------------------------
1 | package com.atomscat.freeswitch.cdr.domain;
2 |
3 | import lombok.Data;
4 | import lombok.experimental.Accessors;
5 |
6 | import java.util.List;
7 |
8 | /**
9 | * AppLog class.
10 | *
11 | * @author : everyone
12 | * @version $Id: $Id
13 | */
14 | @Data
15 | @Accessors(chain = true)
16 | public class AppLog {
17 | private List applications;
18 | }
19 |
--------------------------------------------------------------------------------
/freeswitch-cdr/src/main/java/com/atomscat/freeswitch/cdr/domain/Hold.java:
--------------------------------------------------------------------------------
1 | package com.atomscat.freeswitch.cdr.domain;
2 |
3 | import lombok.Data;
4 | import lombok.experimental.Accessors;
5 |
6 | /**
7 | * Hold class.
8 | *
9 | * @author : everyone
10 | * @version $Id: $Id
11 | */
12 | @Data
13 | @Accessors(chain = true)
14 | public class Hold {
15 | private Long on;
16 | private Long off;
17 | private String bridgedTo;
18 | }
19 |
--------------------------------------------------------------------------------
/freeswitch-cdr/src/main/java/com/atomscat/freeswitch/cdr/domain/Origination.java:
--------------------------------------------------------------------------------
1 | package com.atomscat.freeswitch.cdr.domain;
2 |
3 | import lombok.Data;
4 | import lombok.experimental.Accessors;
5 |
6 | /**
7 | * Origination class.
8 | *
9 | * @author : everyone
10 | * @version $Id: $Id
11 | */
12 | @Data
13 | @Accessors(chain = true)
14 | public class Origination {
15 | private OriginationCallerProfile originationCallerProfile;
16 | }
17 |
--------------------------------------------------------------------------------
/freeswitch-cdr/src/main/java/com/atomscat/freeswitch/cdr/service/CdrService.java:
--------------------------------------------------------------------------------
1 | package com.atomscat.freeswitch.cdr.service;
2 |
3 | /**
4 | * CdrService interface.
5 | *
6 | * @author : everyone
7 | * @version $Id: $Id
8 | */
9 | public interface CdrService {
10 |
11 | /**
12 | * handle.
13 | *
14 | * @param reqText a {@link java.lang.String} object.
15 | */
16 | void handle(String reqText);
17 |
18 | }
19 |
--------------------------------------------------------------------------------
/freeswitch-esl/src/main/java/com/atomscat/freeswitch/esl/outbound/AbstractOutboundServerCommand.java:
--------------------------------------------------------------------------------
1 | package com.atomscat.freeswitch.esl.outbound;
2 |
3 | import com.atomscat.freeswitch.esl.outbound.option.OutboundServerOption;
4 |
5 | /**
6 | * @author everyone
7 | * @since 1.6.0
8 | */
9 | abstract class AbstractOutboundServerCommand extends AbstractOutboundServer {
10 | AbstractOutboundServerCommand(OutboundServerOption option) {
11 | super(option);
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/opensips-event-mi-spring-boot-starter/src/main/java/com/atomscat/opensips/spring/boot/starter/handler/ClientConnectHandler.java:
--------------------------------------------------------------------------------
1 | package com.atomscat.opensips.spring.boot.starter.handler;
2 |
3 |
4 | import com.atomscat.opensips.event.handler.Context;
5 |
6 | public interface ClientConnectHandler {
7 | /**
8 | * @param context a {@link Context} object.
9 | * @param msg a {@link Object} object.
10 | */
11 | void onConnect(Context context, Object msg);
12 | }
13 |
--------------------------------------------------------------------------------
/freeswitch-cdr/src/main/java/com/atomscat/freeswitch/cdr/domain/Audio.java:
--------------------------------------------------------------------------------
1 | package com.atomscat.freeswitch.cdr.domain;
2 |
3 | import lombok.Data;
4 | import lombok.experimental.Accessors;
5 |
6 | /**
7 | * Audio class.
8 | *
9 | * @author : everyone
10 | * @version $Id: $Id
11 | */
12 | @Data
13 | @Accessors(chain = true)
14 | public class Audio {
15 | private Inbound inbound;
16 | private Outbound outbound;
17 | private ErrorLog errorLog;
18 | }
19 |
--------------------------------------------------------------------------------
/freeswitch-esl-example/README.md:
--------------------------------------------------------------------------------
1 | # FreeSWITCH ESL Example
2 |
3 | [](https://img.shields.io/badge/JDK-1.8-green.svg)
4 | [](https://www.apache.org/licenses/LICENSE-2.0.html)
5 | [](https://maven-badges.herokuapp.com/maven-central/link.thingscloud/freeswitch-esl-example/)
6 |
7 |
--------------------------------------------------------------------------------
/freeswitch-cdr/src/main/java/com/atomscat/freeswitch/cdr/domain/Application.java:
--------------------------------------------------------------------------------
1 | package com.atomscat.freeswitch.cdr.domain;
2 |
3 | import lombok.Data;
4 | import lombok.experimental.Accessors;
5 |
6 | /**
7 | * Application class.
8 | *
9 | * @author : everyone
10 | * @version $Id: $Id
11 | */
12 | @Data
13 | @Accessors(chain = true)
14 | public class Application {
15 | private String appName;
16 | private String appData;
17 | private Long appStamp;
18 | }
19 |
--------------------------------------------------------------------------------
/spring-boot-common/spring-boot-common-aop/src/main/java/com/atomscat/spring/boot/common/aop/annotation/Logging.java:
--------------------------------------------------------------------------------
1 | package com.atomscat.spring.boot.common.aop.annotation;
2 |
3 | import com.atomscat.spring.boot.common.aop.enums.LoggingLevel;
4 |
5 | import java.lang.annotation.*;
6 |
7 | @Documented
8 | @Target({ElementType.METHOD})
9 | @Retention(RetentionPolicy.RUNTIME)
10 | public @interface Logging {
11 | LoggingLevel level() default LoggingLevel.INFO;
12 |
13 | boolean result() default true;
14 | }
15 |
--------------------------------------------------------------------------------
/freeswitch-cdr/src/main/java/com/atomscat/freeswitch/cdr/handler/CdrHandler.java:
--------------------------------------------------------------------------------
1 | package com.atomscat.freeswitch.cdr.handler;
2 |
3 | import com.atomscat.freeswitch.cdr.domain.Cdr;
4 |
5 | /**
6 | * CdrHandler interface.
7 | *
8 | * @author : everyone
9 | * @version $Id: $Id
10 | */
11 | public interface CdrHandler {
12 |
13 | /**
14 | * handleCdr.
15 | *
16 | * @param cdr a {@link Cdr} object.
17 | */
18 | void handleCdr(Cdr cdr);
19 |
20 | }
21 |
--------------------------------------------------------------------------------
/opensips-event-mi/src/main/java/com/atomscat/opensips/mi/entitys/NetString.java:
--------------------------------------------------------------------------------
1 | package com.atomscat.opensips.mi.entitys;
2 |
3 | /**
4 | * @author : everyone
5 | * @version 1.0.0
6 | */
7 | public class NetString {
8 |
9 | public static String HTTP = "http://";
10 |
11 | public static String HTTPS = "https://";
12 |
13 | public static String UDP = "udp:";
14 |
15 | public static String MI_JSON_PARAMS = "?params=";
16 |
17 | public static char COMMA = ',';
18 |
19 | public static char COLON = ':';
20 | }
21 |
--------------------------------------------------------------------------------
/opensips-event-mi-spring-boot-starter/src/main/java/com/atomscat/opensips/spring/boot/starter/handler/DefaultClientEventHandler.java:
--------------------------------------------------------------------------------
1 | package com.atomscat.opensips.spring.boot.starter.handler;
2 |
3 |
4 | import com.atomscat.opensips.event.handler.Context;
5 |
6 | /**
7 | * @author th158
8 | */
9 | public class DefaultClientEventHandler extends AbstractClientEventHandler {
10 |
11 | @Override
12 | public void handler(Context context, Object msg) {
13 | log.debug("Default Client Event handler event[{}]", msg);
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/freeswitch-esl-spring-boot-starter/src/main/java/com/atomscat/freeswitch/esl/spring/boot/starter/handler/DefaultMqEventHandler.java:
--------------------------------------------------------------------------------
1 | package com.atomscat.freeswitch.esl.spring.boot.starter.handler;
2 |
3 | import com.rabbitmq.client.Channel;
4 | import lombok.extern.slf4j.Slf4j;
5 | @Slf4j
6 | public class DefaultMqEventHandler extends AbstractMqEventHandler{
7 | @Override
8 | public void handle(Channel channel, String payload, Long tag, String contentType) throws Exception {
9 | log.debug("fs.events : {}", payload);
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/freeswitch-xml-curl/src/main/java/com/atomscat/freeswitch/xml/handler/XmlCurlHandler.java:
--------------------------------------------------------------------------------
1 | package com.atomscat.freeswitch.xml.handler;
2 |
3 |
4 | import com.atomscat.freeswitch.xml.domain.XmlCurl;
5 | import com.fasterxml.jackson.core.JsonProcessingException;
6 |
7 | /**
8 | * XmlCurlHandler interface.
9 | *
10 | * @author : everyone
11 | * @version $Id: $Id
12 | */
13 | public interface XmlCurlHandler {
14 |
15 | String handleXmlCurl(XmlCurl xmlCurl) throws JsonProcessingException;
16 |
17 | }
18 |
--------------------------------------------------------------------------------
/spring-boot-common/spring-boot-common-core/src/main/java/com/atomscat/spring/boot/common/config/SpringBootCommonAutoConfiguration.java:
--------------------------------------------------------------------------------
1 | package com.atomscat.spring.boot.common.config;
2 |
3 | import org.springframework.context.annotation.ComponentScan;
4 | import org.springframework.context.annotation.Configuration;
5 |
6 | @Configuration
7 | @ComponentScan(
8 | basePackages = {"com.atomscat.spring.boot.common"}
9 | )
10 | public class SpringBootCommonAutoConfiguration {
11 | public SpringBootCommonAutoConfiguration() {
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/spring-boot-common/spring-boot-common-core/src/main/java/com/atomscat/spring/boot/common/constant/NumberConstant.java:
--------------------------------------------------------------------------------
1 | package com.atomscat.spring.boot.common.constant;
2 |
3 | public class NumberConstant {
4 | public static final int NUM_1 = 1;
5 | public static final int NUM_10 = 10;
6 | public static final int NUM_100 = 100;
7 | public static final int NUM_1_000 = 1000;
8 | public static final int NUM_10_000 = 10000;
9 | public static final int NUM_1000_000 = 1000000;
10 |
11 | private NumberConstant() {
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/freeswitch-cdr/src/main/java/com/atomscat/freeswitch/cdr/domain/Extension.java:
--------------------------------------------------------------------------------
1 | package com.atomscat.freeswitch.cdr.domain;
2 |
3 | import lombok.Data;
4 | import lombok.experimental.Accessors;
5 |
6 | import java.util.List;
7 |
8 | /**
9 | * Extension class.
10 | *
11 | * @author : everyone
12 | * @version $Id: $Id
13 | */
14 | @Data
15 | @Accessors(chain = true)
16 | public class Extension {
17 | private String name;
18 | private String number;
19 | private List applications;
20 | }
21 |
--------------------------------------------------------------------------------
/opensips-event-mi-spring-boot-starter/src/main/java/com/atomscat/opensips/spring/boot/starter/handler/DefaultClientConnectHandler.java:
--------------------------------------------------------------------------------
1 | package com.atomscat.opensips.spring.boot.starter.handler;
2 |
3 |
4 | import com.atomscat.opensips.event.handler.Context;
5 |
6 | /**
7 | * @author th158
8 | */
9 | public class DefaultClientConnectHandler extends AbstractClientConnectHandler {
10 |
11 |
12 | @Override
13 | public void onConnect(Context context, Object msg) {
14 | log.debug("Default Client connect handler event[{}]", msg);
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/freeswitch-esl-spring-boot-starter/src/main/java/com/atomscat/freeswitch/esl/spring/boot/starter/handler/DefaultMqLoggingHandler.java:
--------------------------------------------------------------------------------
1 | package com.atomscat.freeswitch.esl.spring.boot.starter.handler;
2 |
3 | import com.rabbitmq.client.Channel;
4 | import lombok.extern.slf4j.Slf4j;
5 |
6 | @Slf4j
7 | public class DefaultMqLoggingHandler extends AbstractMqLoggingHandler {
8 | @Override
9 | public void handle(Channel channel, String payload, Long tag, String contentType) throws Exception {
10 | log.debug("fs.logging : {}", payload);
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/freeswitch-esl-spring-boot-starter/src/main/java/com/atomscat/freeswitch/esl/spring/boot/starter/handler/OutBoundConnectHandler.java:
--------------------------------------------------------------------------------
1 | package com.atomscat.freeswitch.esl.spring.boot.starter.handler;
2 |
3 | import com.atomscat.freeswitch.esl.outbound.handler.Context;
4 | import com.atomscat.freeswitch.esl.transport.event.EslEvent;
5 |
6 | public interface OutBoundConnectHandler {
7 | /**
8 | * @param context a {@link Context} object.
9 | * @param eslEvent a {@link EslEvent} object.
10 | */
11 | void onConnect(Context context, EslEvent eslEvent);
12 | }
13 |
--------------------------------------------------------------------------------
/freeswitch-cdr/src/main/java/com/atomscat/freeswitch/cdr/domain/ChannelData.java:
--------------------------------------------------------------------------------
1 | package com.atomscat.freeswitch.cdr.domain;
2 |
3 | import lombok.Data;
4 | import lombok.experimental.Accessors;
5 |
6 | /**
7 | * ChannelData class.
8 | *
9 | * @author : everyone
10 | * @version $Id: $Id
11 | */
12 | @Data
13 | @Accessors(chain = true)
14 | public class ChannelData {
15 | private String state;
16 | private String direction;
17 | private String stateNumber;
18 | private String flags;
19 | private String caps;
20 | }
21 |
--------------------------------------------------------------------------------
/spring-boot-common/spring-boot-common-election/src/main/java/com/atomscat/spring/boot/common/param/BaseElectionConsumerParam.java:
--------------------------------------------------------------------------------
1 | package com.atomscat.spring.boot.common.param;
2 |
3 | import lombok.Data;
4 | import lombok.experimental.Accessors;
5 |
6 | import java.io.Serializable;
7 |
8 | /**
9 | * @author th158
10 | */
11 | @Data
12 | @Accessors(chain = true)
13 | public abstract class BaseElectionConsumerParam implements Serializable {
14 | /**
15 | * unique primary key
16 | */
17 | private String nodeId;
18 |
19 | private T entity;
20 |
21 | }
22 |
--------------------------------------------------------------------------------
/spring-boot-common/spring-boot-common-election/src/main/java/com/atomscat/spring/boot/common/param/BaseElectionProducerParam.java:
--------------------------------------------------------------------------------
1 | package com.atomscat.spring.boot.common.param;
2 |
3 | import lombok.Data;
4 | import lombok.experimental.Accessors;
5 |
6 | import java.io.Serializable;
7 |
8 | /**
9 | * @author th158
10 | */
11 | @Data
12 | @Accessors(chain = true)
13 | public abstract class BaseElectionProducerParam implements Serializable {
14 | /**
15 | * unique primary key
16 | */
17 | private String nodeId;
18 |
19 | private transient T entity;
20 | }
21 |
--------------------------------------------------------------------------------
/freeswitch-cdr/src/main/java/com/atomscat/freeswitch/cdr/domain/ErrorPeriod.java:
--------------------------------------------------------------------------------
1 | package com.atomscat.freeswitch.cdr.domain;
2 |
3 | import lombok.Data;
4 | import lombok.experimental.Accessors;
5 |
6 | /**
7 | * ErrorPeriod class.
8 | *
9 | * @author : everyone
10 | * @version $Id: $Id
11 | */
12 | @Data
13 | @Accessors(chain = true)
14 | public class ErrorPeriod {
15 | private String start;
16 | private String stop;
17 | private String flaws;
18 | private String consecutiveFlaws;
19 | private String durationMsec;
20 | }
21 |
--------------------------------------------------------------------------------
/freeswitch-esl-spring-boot-starter-example/README.md:
--------------------------------------------------------------------------------
1 | # FreeSWITCH ESL Spring Boot Starter Example
2 |
3 | [](https://img.shields.io/badge/JDK-1.8-green.svg)
4 | [](https://www.apache.org/licenses/LICENSE-2.0.html)
5 | [](https://maven-badges.herokuapp.com/maven-central/link.thingscloud/freeswitch-esl-spring-boot-starter-example/)
6 |
7 |
--------------------------------------------------------------------------------
/freeswitch-esl-spring-boot-starter/src/main/java/com/atomscat/freeswitch/esl/spring/boot/starter/handler/OutBoundEventHandler.java:
--------------------------------------------------------------------------------
1 | package com.atomscat.freeswitch.esl.spring.boot.starter.handler;
2 |
3 |
4 | import com.atomscat.freeswitch.esl.outbound.handler.Context;
5 | import com.atomscat.freeswitch.esl.transport.event.EslEvent;
6 |
7 | /**
8 | *
9 | */
10 | public interface OutBoundEventHandler {
11 |
12 | /**
13 | * @param context a {@link Context} object.
14 | * @param eslEvent a {@link EslEvent} object.
15 | */
16 | void handler(Context context, EslEvent eslEvent);
17 | }
18 |
--------------------------------------------------------------------------------
/opensips-event-mi-spring-boot-starter/src/main/java/com/atomscat/opensips/spring/boot/starter/handler/EventClientOptionHandler.java:
--------------------------------------------------------------------------------
1 | package com.atomscat.opensips.spring.boot.starter.handler;
2 |
3 |
4 | import com.atomscat.opensips.event.option.EventClientOption;
5 |
6 | /**
7 | * InboundClientOptionHandler interface.
8 | *
9 | * @author everyone
10 | * @version 1.0.0
11 | */
12 | public interface EventClientOptionHandler {
13 |
14 | /**
15 | * getOption.
16 | *
17 | * @return a {@link EventClientOption} object.
18 | */
19 | EventClientOption getOption();
20 |
21 | }
22 |
--------------------------------------------------------------------------------
/doc/Maven.md:
--------------------------------------------------------------------------------
1 | ### 部署中央仓库
2 |
3 | ```
4 | mvn clean package -DskipTests deploy -projects freeswitch-cdr
5 | mvn clean package -DskipTests deploy -projects freeswitch-esl
6 | mvn clean package -DskipTests deploy -projects freeswitch-xml-curl
7 | mvn clean package -DskipTests deploy -projects opensips-event-mi
8 | mvn clean package -DskipTests deploy -projects spring-boot-common/spring-boot-common-aop,spring-boot-common/spring-boot-common-core
9 | mvn clean package -DskipTests deploy -projects freeswitch-cdr-spring-boot-starter,freeswitch-esl-spring-boot-starter,freeswitch-xml-curl-spring-boot-starter,opensips-event-mi-spring-boot-starter
10 | ```
--------------------------------------------------------------------------------
/freeswitch-esl-spring-boot-starter/src/main/java/com/atomscat/freeswitch/esl/spring/boot/starter/handler/InboundClientOptionHandler.java:
--------------------------------------------------------------------------------
1 | package com.atomscat.freeswitch.esl.spring.boot.starter.handler;
2 |
3 | import com.atomscat.freeswitch.esl.inbound.option.InboundClientOption;
4 |
5 | /**
6 | * InboundClientOptionHandler interface.
7 | *
8 | * @author everyone
9 | * @version 1.0.0
10 | */
11 | public interface InboundClientOptionHandler {
12 |
13 | /**
14 | * getOption.
15 | *
16 | * @return a {@link InboundClientOption} object.
17 | */
18 | InboundClientOption getOption();
19 |
20 | }
21 |
--------------------------------------------------------------------------------
/freeswitch-esl-spring-boot-starter/src/main/java/com/atomscat/freeswitch/esl/spring/boot/starter/handler/OutboundServerOptionHandler.java:
--------------------------------------------------------------------------------
1 | package com.atomscat.freeswitch.esl.spring.boot.starter.handler;
2 |
3 | import com.atomscat.freeswitch.esl.outbound.option.OutboundServerOption;
4 |
5 | /**
6 | * InboundClientOptionHandler interface.
7 | *
8 | * @author everyone
9 | * @version 1.0.0
10 | */
11 | public interface OutboundServerOptionHandler {
12 |
13 | /**
14 | * getOption.
15 | *
16 | * @return a {@link OutboundServerOption} object.
17 | */
18 | OutboundServerOption getOption();
19 |
20 | }
21 |
--------------------------------------------------------------------------------
/freeswitch-xml-curl/src/main/java/com/atomscat/freeswitch/xml/domain/configuration/sofia/aliase/Aliases.java:
--------------------------------------------------------------------------------
1 | package com.atomscat.freeswitch.xml.domain.configuration.sofia.aliase;
2 |
3 | import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlElementWrapper;
4 | import lombok.Data;
5 | import lombok.experimental.Accessors;
6 |
7 | import java.io.Serializable;
8 | import java.util.List;
9 |
10 | /**
11 | * @author howell
12 | */
13 | @Data
14 | @Accessors(chain = true)
15 | public class Aliases implements Serializable {
16 | @JacksonXmlElementWrapper(localName = "alias", useWrapping = false)
17 | private List alias;
18 | }
19 |
--------------------------------------------------------------------------------
/freeswitch-cdr/src/main/java/com/atomscat/freeswitch/cdr/domain/Callflow.java:
--------------------------------------------------------------------------------
1 | package com.atomscat.freeswitch.cdr.domain;
2 |
3 | import lombok.Data;
4 | import lombok.experimental.Accessors;
5 |
6 | /**
7 | * Callflow class.
8 | *
9 | * @author : everyone
10 | * @version $Id: $Id
11 | */
12 | @Data
13 | @Accessors(chain = true)
14 | public class Callflow {
15 | private String dialplan;
16 | private String uniqueId;
17 | private String cloneOf;
18 | private String profileIndex;
19 | private Extension extension;
20 | private CallerProfile callerProfile;
21 | private Times times;
22 | }
23 |
--------------------------------------------------------------------------------
/freeswitch-xml-curl/src/main/java/com/atomscat/freeswitch/xml/domain/configuration/sofia/domain/Domains.java:
--------------------------------------------------------------------------------
1 | package com.atomscat.freeswitch.xml.domain.configuration.sofia.domain;
2 |
3 | import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlElementWrapper;
4 | import lombok.Data;
5 | import lombok.experimental.Accessors;
6 |
7 | import java.io.Serializable;
8 | import java.util.List;
9 |
10 | /**
11 | * @author howell
12 | */
13 | @Data
14 | @Accessors(chain = true)
15 | public class Domains implements Serializable {
16 |
17 | @JacksonXmlElementWrapper(localName = "domain", useWrapping = false)
18 | private List domain;
19 | }
20 |
--------------------------------------------------------------------------------
/opensips-event-mi/src/main/java/com/atomscat/opensips/mi/entitys/enums/MiJsonUriEnum.java:
--------------------------------------------------------------------------------
1 | package com.atomscat.opensips.mi.entitys.enums;
2 |
3 | import lombok.Getter;
4 |
5 | /**
6 | * @author : everyone
7 | * @version 1.0.0
8 | */
9 | @Getter
10 | public enum MiJsonUriEnum {
11 |
12 | UL_SHOW_CONTACT("/json/ul_show_contact", "根据sip的AOR地址获取注册在opensips上的信息"),
13 | EVENT_SUBSCRIBE("/json/event_subscribe", "发送事件订阅地址给opensips");
14 |
15 | private final String uri;
16 |
17 | private final String desc;
18 |
19 | MiJsonUriEnum(String uri, String desc) {
20 | this.uri = uri;
21 | this.desc = desc;
22 | }
23 |
24 | }
25 |
--------------------------------------------------------------------------------
/freeswitch-esl-spring-boot-starter/src/main/java/com/atomscat/freeswitch/esl/spring/boot/starter/handler/DefaultOutBoundEventHandler.java:
--------------------------------------------------------------------------------
1 | package com.atomscat.freeswitch.esl.spring.boot.starter.handler;
2 |
3 |
4 | import com.atomscat.freeswitch.esl.helper.EslHelper;
5 | import com.atomscat.freeswitch.esl.outbound.handler.Context;
6 | import com.atomscat.freeswitch.esl.transport.event.EslEvent;
7 |
8 | public class DefaultOutBoundEventHandler extends AbstractOutBoundEventHandler {
9 | @Override
10 | public void handler(Context context, EslEvent eslEvent) {
11 | log.debug("Default outbound connect handler event[{}]", EslHelper.formatEslEvent(eslEvent));
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/freeswitch-xml-curl/src/main/java/com/atomscat/freeswitch/xml/domain/directory/user/Users.java:
--------------------------------------------------------------------------------
1 | package com.atomscat.freeswitch.xml.domain.directory.user;
2 |
3 | import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlElementWrapper;
4 | import lombok.AllArgsConstructor;
5 | import lombok.Data;
6 | import lombok.NoArgsConstructor;
7 | import lombok.experimental.Accessors;
8 |
9 | import java.io.Serializable;
10 | import java.util.List;
11 |
12 | @Data
13 | @NoArgsConstructor
14 | @AllArgsConstructor
15 | @Accessors(chain = true)
16 | public class Users implements Serializable {
17 | @JacksonXmlElementWrapper(localName = "user", useWrapping = false)
18 | private List user;
19 | }
20 |
--------------------------------------------------------------------------------
/SECURITY.md:
--------------------------------------------------------------------------------
1 | # Security Policy
2 |
3 | ## Supported Versions
4 |
5 | Use this section to tell people about which versions of your project are currently being supported with security
6 | updates.
7 |
8 | | Version | Supported |
9 | | ------- | ------------------ |
10 | | 5.1.x | :white_check_mark: |
11 | | 5.0.x | :x: |
12 | | 4.0.x | :white_check_mark: |
13 | | < 4.0 | :x: |
14 |
15 | ## Reporting a Vulnerability
16 |
17 | Use this section to tell people how to report a vulnerability.
18 |
19 | Tell them where to go, how often they can expect to get an update on a reported vulnerability, what to expect if the
20 | vulnerability is accepted or declined, etc.
21 |
--------------------------------------------------------------------------------
/freeswitch-xml-curl/src/main/java/com/atomscat/freeswitch/xml/domain/directory/group/Groups.java:
--------------------------------------------------------------------------------
1 | package com.atomscat.freeswitch.xml.domain.directory.group;
2 |
3 | import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlElementWrapper;
4 | import lombok.AllArgsConstructor;
5 | import lombok.Data;
6 | import lombok.NoArgsConstructor;
7 | import lombok.experimental.Accessors;
8 |
9 | import java.io.Serializable;
10 | import java.util.List;
11 |
12 | @Data
13 | @NoArgsConstructor
14 | @AllArgsConstructor
15 | @Accessors(chain = true)
16 | public class Groups implements Serializable {
17 | @JacksonXmlElementWrapper(localName = "group", useWrapping = false)
18 | private List group;
19 | }
20 |
--------------------------------------------------------------------------------
/freeswitch-xml-curl/src/main/java/com/atomscat/freeswitch/xml/domain/directory/param/Params.java:
--------------------------------------------------------------------------------
1 | package com.atomscat.freeswitch.xml.domain.directory.param;
2 |
3 | import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlElementWrapper;
4 | import lombok.AllArgsConstructor;
5 | import lombok.Data;
6 | import lombok.NoArgsConstructor;
7 | import lombok.experimental.Accessors;
8 |
9 | import java.io.Serializable;
10 | import java.util.List;
11 |
12 | @Data
13 | @NoArgsConstructor
14 | @AllArgsConstructor
15 | @Accessors(chain = true)
16 | public class Params implements Serializable {
17 | @JacksonXmlElementWrapper(localName = "param", useWrapping = false)
18 | private List param;
19 | }
20 |
--------------------------------------------------------------------------------
/freeswitch-xml-curl/src/main/java/com/atomscat/freeswitch/xml/domain/configuration/sofia/aliase/Alias.java:
--------------------------------------------------------------------------------
1 | package com.atomscat.freeswitch.xml.domain.configuration.sofia.aliase;
2 |
3 | import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
4 | import lombok.Data;
5 | import lombok.experimental.Accessors;
6 |
7 | import java.io.Serializable;
8 |
9 | /**
10 | * @author howell
11 | */
12 | @Data
13 | @Accessors(chain = true)
14 | public class Alias implements Serializable {
15 | /**
16 | * aliases are other names that will work as a valid profile name for this profile
17 | */
18 | @JacksonXmlProperty(localName = "name", isAttribute = true)
19 | private String name;
20 | }
21 |
--------------------------------------------------------------------------------
/freeswitch-xml-curl/src/main/java/com/atomscat/freeswitch/xml/domain/directory/gateway/Gateways.java:
--------------------------------------------------------------------------------
1 | package com.atomscat.freeswitch.xml.domain.directory.gateway;
2 |
3 | import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlElementWrapper;
4 | import lombok.AllArgsConstructor;
5 | import lombok.Data;
6 | import lombok.NoArgsConstructor;
7 | import lombok.experimental.Accessors;
8 |
9 | import java.io.Serializable;
10 | import java.util.List;
11 |
12 | @Data
13 | @NoArgsConstructor
14 | @AllArgsConstructor
15 | @Accessors(chain = true)
16 | public class Gateways implements Serializable {
17 | @JacksonXmlElementWrapper(localName = "gateway", useWrapping = false)
18 | private List gateway;
19 | }
20 |
--------------------------------------------------------------------------------
/freeswitch-esl-spring-boot-starter/src/main/java/com/atomscat/freeswitch/esl/spring/boot/starter/handler/DefaultOutBoundConnectHandler.java:
--------------------------------------------------------------------------------
1 | package com.atomscat.freeswitch.esl.spring.boot.starter.handler;
2 |
3 | import com.atomscat.freeswitch.esl.helper.EslHelper;
4 | import com.atomscat.freeswitch.esl.outbound.handler.Context;
5 | import com.atomscat.freeswitch.esl.transport.event.EslEvent;
6 |
7 | /**
8 | * @author th158
9 | */
10 | public class DefaultOutBoundConnectHandler extends AbstractOutBoundConnectHandler {
11 | @Override
12 | public void onConnect(Context context, EslEvent eslEvent) {
13 | log.debug("Default outbound connect handler event[{}]", EslHelper.formatEslEvent(eslEvent));
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/freeswitch-xml-curl/src/main/java/com/atomscat/freeswitch/xml/domain/configuration/sofia/setting/Settings.java:
--------------------------------------------------------------------------------
1 | package com.atomscat.freeswitch.xml.domain.configuration.sofia.setting;
2 |
3 | import com.atomscat.freeswitch.xml.domain.configuration.sofia.Param;
4 | import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlElementWrapper;
5 | import lombok.Data;
6 | import lombok.experimental.Accessors;
7 |
8 | import java.io.Serializable;
9 | import java.util.List;
10 |
11 | /**
12 | * @author howell
13 | */
14 | @Data
15 | @Accessors(chain = true)
16 | public class Settings implements Serializable {
17 |
18 | @JacksonXmlElementWrapper(localName = "param", useWrapping = false)
19 | private List param;
20 | }
21 |
--------------------------------------------------------------------------------
/opensips-event-mi/src/main/java/com/atomscat/opensips/mi/service/MiUlShowContactService.java:
--------------------------------------------------------------------------------
1 | package com.atomscat.opensips.mi.service;
2 |
3 |
4 | import com.atomscat.opensips.mi.entitys.request.MiUlShowContactReq;
5 | import com.atomscat.opensips.mi.entitys.response.MiUlShowContactResp;
6 |
7 | /**
8 | * @author : everyone
9 | * @version 1.0.0
10 | */
11 | public interface MiUlShowContactService {
12 | /**
13 | * @param urlBase OpenSips MI Service address base url
14 | * @param ulShowContactReq a {@link MiUlShowContactReq} request param
15 | * @return a {@link MiUlShowContactResp} response param
16 | */
17 | MiUlShowContactResp getUlShowContact(String urlBase, MiUlShowContactReq ulShowContactReq);
18 | }
19 |
--------------------------------------------------------------------------------
/freeswitch-esl-spring-boot-starter-example/src/main/java/com/atomscat/freeswitch/esl/spring/boot/starter/example/udp/InitStart.java:
--------------------------------------------------------------------------------
1 | package com.atomscat.freeswitch.esl.spring.boot.starter.example.udp;
2 |
3 | import org.springframework.context.annotation.Configuration;
4 |
5 | @Configuration
6 | public class InitStart {
7 |
8 | // @Autowired
9 | // private UdpServer2 udpServer2;
10 |
11 | // @Autowired
12 | // private UdpServer udpServer;
13 | //
14 | // @Bean(initMethod = "start")
15 | // public UdpServer2 udpServer2(){
16 | // return new UdpServer2();
17 | // }
18 |
19 | // @Bean(initMethod = "start")
20 | // public UdpServer udpServer(){
21 | // return new UdpServer();
22 | // }
23 |
24 | }
25 |
--------------------------------------------------------------------------------
/freeswitch-xml-curl/src/main/java/com/atomscat/freeswitch/xml/domain/dialplan/Extension.java:
--------------------------------------------------------------------------------
1 | package com.atomscat.freeswitch.xml.domain.dialplan;
2 |
3 | import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlElementWrapper;
4 | import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
5 | import lombok.Data;
6 |
7 | import java.io.Serializable;
8 | import java.util.List;
9 |
10 | /**
11 | * @author th158
12 | */
13 | @Data
14 | public class Extension implements Serializable {
15 |
16 | @JacksonXmlProperty(localName = "name", isAttribute = true)
17 | private String name;
18 |
19 | @JacksonXmlElementWrapper(localName = "condition", useWrapping = false)
20 | private List condition;
21 | }
22 |
--------------------------------------------------------------------------------
/OSSRH-72998/pom.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 | softswitch-gateway
7 | com.atomscat
8 | 2.0.0.RELEASE
9 |
10 | 4.0.0
11 |
12 | OSSRH-72998
13 |
14 |
15 | 17
16 | 17
17 |
18 |
19 |
--------------------------------------------------------------------------------
/opensips-event-mi/src/main/java/com/atomscat/opensips/mi/service/MiEventSubscribeService.java:
--------------------------------------------------------------------------------
1 | package com.atomscat.opensips.mi.service;
2 |
3 |
4 | import com.atomscat.opensips.mi.entitys.request.MiEventSubscribeReq;
5 | import com.atomscat.opensips.mi.entitys.response.MiEventSubscribeResp;
6 |
7 | /**
8 | * @author : everyone
9 | * @version 1.0.0
10 | */
11 | public interface MiEventSubscribeService {
12 | /**
13 | * @param urlBase OpenSips MI Service address base url
14 | * @param eventSubscribeReq a {@link MiEventSubscribeReq} request param
15 | * @return a {@link MiEventSubscribeResp} response param
16 | */
17 | MiEventSubscribeResp setEventSubscribe(String urlBase, MiEventSubscribeReq eventSubscribeReq);
18 | }
19 |
--------------------------------------------------------------------------------
/freeswitch-cdr/src/main/java/com/atomscat/freeswitch/cdr/domain/Outbound.java:
--------------------------------------------------------------------------------
1 | package com.atomscat.freeswitch.cdr.domain;
2 |
3 | import lombok.Data;
4 | import lombok.experimental.Accessors;
5 |
6 | /**
7 | * Outbound class.
8 | *
9 | * @author : everyone
10 | * @version $Id: $Id
11 | */
12 | @Data
13 | @Accessors(chain = true)
14 | public class Outbound {
15 | private String rawBytes;
16 | private String mediaBytes;
17 | private String packetCount;
18 | private String mediaPacketCount;
19 | private String skipPacketCount;
20 | private String dtmfPacketCount;
21 | private String cngPacketCount;
22 | private String rtcpPacketCount;
23 | private String rtcpOctetCount;
24 | }
25 |
--------------------------------------------------------------------------------
/freeswitch-xml-curl/src/main/java/com/atomscat/freeswitch/xml/domain/configuration/ivr/Menus.java:
--------------------------------------------------------------------------------
1 | package com.atomscat.freeswitch.xml.domain.configuration.ivr;
2 |
3 | import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlElementWrapper;
4 | import lombok.AllArgsConstructor;
5 | import lombok.Data;
6 | import lombok.NoArgsConstructor;
7 | import lombok.experimental.Accessors;
8 |
9 | import java.io.Serializable;
10 | import java.util.List;
11 |
12 | /**
13 | * @author th158
14 | */
15 | @Data
16 | @NoArgsConstructor
17 | @AllArgsConstructor
18 | @Accessors(chain = true)
19 | public class Menus implements Serializable {
20 |
21 | @JacksonXmlElementWrapper(localName = "menu", useWrapping = false)
22 | private List