# go-smpp **Repository Path**: gzcorrect/go-smpp ## Basic Information - **Project Name**: go-smpp - **Description**: 自有smpp内容,修改部分内容 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-01-05 - **Last Updated**: 2025-01-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README <<<<<<< HEAD # smpp #### 介绍 {**以下是 Gitee 平台说明,您可以替换此简介** Gitee 是 OSCHINA 推出的基于 Git 的代码托管平台(同时支持 SVN)。专为开发者提供稳定、高效、安全的云端软件开发协作平台 无论是个人、团队、或是企业,都能够用 Gitee 实现代码托管、项目管理、协作开发。企业项目请看 [https://gitee.com/enterprises](https://gitee.com/enterprises)} #### 软件架构 软件架构说明 #### 安装教程 1. xxxx 2. xxxx 3. xxxx #### 使用说明 1. xxxx 2. xxxx 3. xxxx #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/) ======= # SMPP 3.4 [![GoDoc](https://godoc.org/github.com/fiorix/go-smpp?status.svg)](https://godoc.org/github.com/fiorix/go-smpp) [![Go Report Card](https://goreportcard.com/badge/github.com/fiorix/go-smpp)](https://goreportcard.com/report/github.com/fiorix/go-smpp) [![Build Status](https://secure.travis-ci.org/fiorix/go-smpp.png)](https://travis-ci.org/fiorix/go-smpp) This is an implementation of SMPP 3.4 for Go, based on the original [smpp34](https://github.com/CodeMonkeyKevin/smpp34) from Kevin Patel. The API has been refactored to idiomatic Go code with more tests and documentation. There are also quite a few new features, such as a test server (see smpptest package) and support for text transformation for LATIN-1 and UCS-2. It is not fully compliant, there are some TODOs in the code. ## Usage Following is an SMPP client transmitter wrapped by an HTTP server that can send Short Messages (SMS): ```go func main() { // make persistent connection tx := &smpp.Transmitter{ Addr: "localhost:2775", User: "foobar", Passwd: "secret", } conn := tx.Bind() // check initial connection status var status smpp.ConnStatus if status = <-conn; status.Error() != nil { log.Fatalln("Unable to connect, aborting:", status.Error()) } log.Println("Connection completed, status:", status.Status().String()) // example of connection checker goroutine go func() { for c := range conn { log.Println("SMPP connection status:", c.Status()) } }() // example of sender handler func http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { sm, err := tx.Submit(&smpp.ShortMessage{ Src: r.FormValue("src"), Dst: r.FormValue("dst"), Text: pdutext.Raw(r.FormValue("text")), Register: pdufield.NoDeliveryReceipt, TLVFields: pdutlv.Fields{ pdutlv.TagReceiptedMessageID: pdutlv.CString(r.FormValue("msgId")), }, }) if err == smpp.ErrNotConnected { http.Error(w, "Oops.", http.StatusServiceUnavailable) return } if err != nil { http.Error(w, err.Error(), http.StatusBadRequest) return } io.WriteString(w, sm.RespID()) }) log.Fatal(http.ListenAndServe(":8080", nil)) } ``` You can test from the command line: ```bash curl localhost:8080 -X GET -F src=bart -F dst=lisa -F text=hello ``` If you don't have an SMPP server to test, check out [Selenium SMPPSim](http://www.seleniumsoftware.com/downloads.html). It has been used for the development of this package. ## Tools See the tools under `cmd/`. There's a command line tool for sending SMS from the command line, and an HTTP server with WebSocket support. ## Supported PDUs - [x] bind_transmitter - [x] bind_transmitter_resp - [x] bind_receiver - [x] bind_receiver_resp - [x] bind_transceiver - [x] bind_transceiver_resp - [ ] outbind - [x] unbind - [x] unbind_resp - [x] submit_sm - [x] submit_sm_resp - [ ] submit_sm_multi - [ ] submit_sm_multi_resp - [ ] data_sm - [ ] data_sm_resp - [x] deliver_sm - [x] deliver_sm_resp - [x] query_sm - [x] query_sm_resp - [ ] cancel_sm - [ ] cancel_sm_resp - [ ] replace_sm - [ ] replace_sm_resp - [x] enquire_link - [x] enquire_link_resp - [ ] alert_notification - [x] generic_nack - [x] tag-length-value (TLV) ## Copyright See LICENSE and AUTHORS files for details. >>>>>>> 664de76 (初次提交)