- kamailio中的PV,PV Headers,App Lua,Dialog,UUID,Dianplan等模块的讲解
狂爱代码的码农
VOIP那些事luakamailio
课程总结今天的课程围绕Kamailio模块和SIP服务器类型展开,详细讲解了多个核心模块的功能、参数和使用方法,并深入探讨了SIP中B2BUA和ProxyServer的区别与应用场景。以下是今天课程的主要内容总结:今日主题Kamailio模块与SIP服务器类型详解重要知识点总结模块/主题重要知识点备注PV模块-伪变量的定义与使用-pv_isset、pv_unset、is_int等函数的使用伪变量用
- kamailio6.0和SIPp及vos3000测通的代码
狂爱代码的码农
VOIP那些事kamailio
SIPp的代码From:;tag=clientCall-ID:12345CSeq:1INVITEMax-Forwards:70Content-Length:0Via:SIP/2.0/UDP192.168.1.62:5060;branch=z9hG4bK-12345]]>;tag=clientFrom:;tag=clientCall-ID:12345CSeq:1ACKVia:SIP/2.0/UDP1
- Kamailio开源核心模块
戴草帽的大z
音视频流媒体kamailiosip
Kamailio开源核心模块core功能:Kamailio的核心模块负责初始化服务器,加载其他模块,并提供基本的SIP消息处理功能。详细特性:SIP消息的解析和构建。事件驱动的消息处理流程。核心路由引擎,用于匹配和执行路由脚本。内存和配置管理。tm(TransactionModule)功能:tm模块管理SIP事务,确保请求和响应的正确匹配和处理。详细特性:实现SIP事务的状态机。处理事务超时和重传
- 开源sip客户端 linux,开源SIP服务器 Kamailio
weixin_28795975
开源sip客户端linux
Kamailio是一个开源的SIP服务器,原名OpenSER。Kamailio项目诞生于2005年7月,它是从德国FhGFOKUS研究所主导的SIPExpressRouter(SER)项目组分裂出来的。新项目建立的目标是创建一个开放的开发环境,以建立一个强大的可扩展的开源SIP服务器。最初,新项目命名为OpenSer,后来因为商标侵权问题,在2008年7月28号,重命名为Kamailio(另外一个
- Kamailio(OPENSER) 3.1.x INSTALL
gangban_lau
VoipSIPmysqldatabasefiledomainincludepasswords
1,GettingsourcesfromGITmkdirsrc;cdsrcgitclone--depth1git://git.sip-router.org/sip-routerkamailiocdkamailiogitcheckout-b3.1origin/3.12,TuningMakefilesmakeFLAVOUR=kamailiocfgNextstepistoenabletheMySQLmo
- kamailio关于via那点事
狂爱代码的码农
VOIP那些事kamailio
如果kamailio作为代理服务器,在转到目的路由时不删除原始的via信息会造成信息泄露如果Kamailio作为代理服务器(SIPProxy)在转发SIP请求时不删除原始的Via信息,这确实可能会造成信息泄露。为什么不删除Via可能会泄露信息?暴露内部网络信息Via头包含了前一个发送者的IP地址、端口和传输方式(UDP/TCP/TLS)。如果Via头未被清理,可能会泄露内部服务器IP(如私有地址1
- 在ububtu22.04上配置kamailio的日志【记录来自deepseek】
狂爱代码的码农
VOIP那些事kamailio
根据我们之前的讨论,以下是Kamailio日志存储的完整配置方案,包括:日志输出到文件(带日期文件名)。日志轮转(使用logrotate)。日志级别控制。日志格式优化。一、Kamailio日志配置1.修改kamailio.cfg在kamailio.cfg中配置日志级别和输出方式:#######GlobalParameters#########debug=3#设置调试级别(0=无调试,3=最详细)l
- makailio-alias_db模块详解
狂爱代码的码农
VOIP那些事kamaimio
- 在ubuntu22.04上先部署docker,再编译安装kamailio,附详细操作流程及docker和makailio的版本号
狂爱代码的码农
VOIP那些事kamaimio
以下是在Ubuntu22.04上部署Docker并编译安装Kamailio的详细操作流程,包含版本号信息:一、部署Docker(版本:24.0.7)更新系统包sudoaptupdate&&sudoaptupgrade-y安装依赖工具sudoaptinstall-yapt-transport-httpsca-certificatescurlsoftware-properties-common添加Do
- kamailio mysql_Kamailio安装配置指南(绝对原创,亲测有效)
上官义飞
kamailiomysql
1、先决条件l读者熟悉Ubuntu/Centos、Linux各种基本操作。l读者熟悉apt-get软件包管理工具。l读者熟悉编译安装Linux程序的一般过程。l操作用户具有sudo权限。2、安装第三方依赖库由于不同的Linux系统,同一个依赖库的名称也会不一样,在线安装方法也不一样,所以在此以Ubuntu和centos两种Linux系统为例进行讲解。Ubuntu系统下的安装方式:sudoapt-g
- Kamailio、MySQL、Redis、Gin后端、Vue.js前端等基于容器化部署
狂爱代码的码农
VOIP那些事chatgptkamailio
基于容器化的部署方案,通常会将每个核心服务(如Kamailio、MySQL、Redis、Gin后端、Vue.js前端等)独立运行在不同的容器中,通过Docker或Kubernetes统一管理。以下是具体实现方式和关键原因:1.容器化部署的核心思路每个服务独立容器化:Kamailio:运行在独立容器,处理SIP信令。MySQL:数据库单独容器化,存储用户、CDR等数据。Redis:缓存服务独立容器,
- kamailio在ESXI的虚拟机中的并发量预估
狂爱代码的码农
VOIP那些事kamaimio
基于ESXi虚拟机的KamailioSIP信令转发性能评估1.硬件配置分析组件配置CPUIntelXeonE5-2673v4×2(双路,共40核/80线程,2.3~3.5GHz)内存2166MHzDDR4,32GB×4(共128GB)存储SAS硬盘RAID5(读写性能较低,适合日志存储)虚拟化平台VMwareESXi虚拟机配置8核vCPU,16GB内存2.性能评估方法(1)CPU性能物理CPU:E
- 基于Kamailio的VoIP管理系统方案(技术栈:MySQL + Redis + Gin + Vue.js
狂爱代码的码农
VOIP那些事kamaimio
基于Kamailio的VoIP管理系统方案(技术栈:MySQL+Redis+Gin+Vue.js)1.系统架构核心组件:Kamailio:处理SIP信令、路由、负载均衡、安全过滤。MySQL:存储用户数据、CDR(呼叫记录)、费率规则、系统配置。Redis:缓存用户会话、黑白名单、实时计费锁、高频操作临时数据。Gin(Go语言后端):提供RESTfulAPI,处理业务逻辑和数据库交互。Vue.js
- kamailio mysql数据表之subscriber用户表
若尘拂风
kamailiomysql数据库sipudpSIP
1:表结构CREATETABLE`subscriber`(`id`int(10)unsignedNOTNULLAUTO_INCREMENT,`username`varchar(64)NOTNULLDEFAULT'',`domain`varchar(64)NOTNULLDEFAULT'',`password`varchar(64)NOTNULLDEFAULT'',`ha1`varchar(128)N
- 基于Kamailio、MySQL、Redis、Gin、Vue.js的微服务架构
狂爱代码的码农
VOIP那些事kamaimio
每个服务使用一台独立的服务器的可行部署方案,尤其是在高并发、高可用性要求较高的场景中。这种方案通常被称为分布式部署或微服务架构。以下是针对您的VoIP管理系统(基于Kamailio、MySQL、Redis、Gin、Vue.js)的详细分析和建议。1.分布式部署的优势(1)资源隔离性能保障:每个服务独占服务器资源(CPU、内存、磁盘),避免资源争抢。例如,Kamailio处理大量SIP信令时,不会影
- kamailio-ACC模块介绍【kamailio6.0. X】
狂爱代码的码农
VOIP那些事kamaimio
- debian12.9安装kamailio
狂爱代码的码农
VOIP那些事kamaimio
#debian12.9安装kamailio更新和安装【kamailio通过包管理进行安装】aptupdateaptinstall-ykamailiokamailio-extra-moduleskamailio-websocket-modules防火墙设置ufwallow5060/tcpufwallow5060/udpufwallow10000:20000/udp#RTP范围设置开机启动和启动sys
- kamailio-5.8.4-centos9编译
狂爱代码的码农
VOIP那些事kamailio
安装必要的依赖包在开始编译之前,你需要安装编译Kamailio所需的一些基础依赖包:dnfinstall-ymakegccgcc-c++flexbisonlibxml2-developenssl-develsqlite-develmysql-develpcre-devellibcurl-devel下载并解压Kamailio源码包假设你已经把kamailio-5.8.4_src.tar.gz文件下载
- 比较Kamailio和OpenSIPS的重写contact函数
无名387
OpenSIPSKamailioNAT
Kamailio:调用set_contact_alias()之后,在原有的contact的后面增加参数,具体地说,就是网络地址,网络端口和transport,好处是收到后续请求之时可以恢复原有contact的内容(当然也有坏处,就是增加参数之后导致包大,可能超过MTU)OpenSIPS:调用fix_nated_contact()之后,用网络地址和网络端口直接覆盖了在原有的contact,那么当收到
- 测试OpenSIPS3.4.3的lua模块
无名387
OpenSIPSOpenSIPSlua
这几天测试OpenSIPS3.4.3的lua模块,记录如下:有bug,但能用但现实世界就是这样,总是不完美的,发现之后马上提了issue下面这段代码运行报错:functionfunc1(msg)xlog("ERR","Hello,OpenSIPS\n")--把ERR改成EEE就没问题endsipstate.c的127行明显有问题(读者自己去查阅源码,这里不贴了)功能比Kamailio的KEMI少,
- ubuntu上kamailio+rtpproxy+mediaproxy环境搭建
Bluekkk
前言最近项目中需要用SIP协议栈实现实时音视频通信。因为服务器段暂时没人做,所以就用kamailio搭建了一个SIP服务器做开发测试使用。安装配置过程中踩了不少坑,现在讲整个过程总结一下。kamailio安装配置官方安装文档地址:https://www.kamailio.org/wiki/install/4.4.x/git下载源码mkdir-p/usr/local/src/kamailiocd/u
- 比较Kamailio和OpenSIPS的dispatcher模块
无名387
KamailioOpenSIPSdispatcher
Kamailio的dispatcher模块我用的很多,很熟OpenSIPS有同名模块二者基本功能相同但真使起来,差别还是挺大的#OpenSIPSevent_route[E_DISPATCHER_STATUS]{#logeachtimeadispatcherdestination#changesitsstatusxlog("Dispatcherdestinationhasnewstatus");}O
- Kamailio使用自定义DNS条目
无名387
KamailioKamailioDNS
绕过DNS服务器,使用自定义DNS条目,有多种办法,这里仅提供其中一种:modparam("corex","dns_cache","type=A;name=kamailio.org;addr=192.168.1.100;ttl=3600000;flags=2")#可以定义多次其中:-type=AIPv4-ttlTTL值-flags=2该条目永不过期知识是一点一滴攒起来的
- ssl解码
无名387
Kamailiossl
https://www.kamailio.org/dokuwiki/doku.php/troubleshooting:tls这篇文章说ssldump可以解码但是实操起来往往不行再请看这篇文章:https://osqa-ask.wireshark.org/questions/7886/ssl-decrypting-problem/还好我够机智,改了下/etc/kamailio/tls.cfg,内容为
- 快速安装方式安装开源OpenSIPS和CP控制界面
lonnng2004
opensipsmysqlopensipsCP
OpenSIPS是目前世界上主流的两个SIP软交换引擎(其中另外一个是kamailio)或者SIP信令服务器(个人认为是比较正确的称谓)。关于Opensips的基础和一些参数配置和安装方式笔者在很久以前的历史文档中有非常多的介绍。最近,很多用户使用OpenSIPS软交换平台做freeSBC或者其他的功能业务的实现,这些客户遇到很多的疑问和安装中也遇到很多问题,所以,为了让客户能够快速安装opens
- CentOS下Kamailio安装指南
安安爸Chris
引用帖子https://www.kamailio.org/wiki/packages/rpmsCentOS下,需要先把repo加入到系统中,这样yum可以找到cd/etc/yum.repos.d/wgethttp://download.opensuse.org/repositories/home:/kamailio:/v5.2.x-rpms/CentOS_7/home:kamailio:v5.2.
- 记录一次Kamailio的问题跟踪过程
无名387
Kamailio信息与通信
sngrep,发现kamailio收到bye请求之后,转发错了,每次必现。根据经验,收到的bye消息是对的,错误应该出在Kamailio路由上。下面是查错的步骤:第一步设置debug=3(一般情况下设置为2),运行下面这个命令:kamcmdcfg.seticoredebug3#检查过kamailio.cfg,里面有这一行:loadmodule"cfg_rpc.so"接下来复现问题,然后检查日志,找
- OpenSIPS自定义统计项目
无名387
OpenSIPSOPS自定义统计项目
有朋友问,怎么统计ops每日的呼叫量这就是需要自定义统计项目我第一感觉是dialog模块后来又查了下资料,statistics模块更合适,Kamailio也有同名模块
- Push Notification with Kamailio
bao231
Thisbrieftutorialshowshowto“freeze”SIPtransactiontothemomentthesubscriberwakesup.Thelogicissimplehere:AsterisksendsSIPINVITEtoKamailioSIPProxyKamailiodetectsdevicetypebyspecificX-headerandfreezesincom
- Kamailio踩坑记
无名387
Kamailiokamailioissue
分享几次踩坑/爬坑历史有一批sip终端用tcp注册到kamailio,最开始很正常,但随着终端数量的逐渐增加,部分终端需要很久才能成功注册第一步想到的是在kamailio上抓包,发现确实是kamailioclose了tcp连接第二步是把全局参数debug修改成3(默认是2),等问题复现后收集日志,跟源码对比这才发现是一个全局参数没设置好,tcp_max_connections默认是2048,当时终
- eclipse maven
IXHONG
eclipse
eclipse中使用maven插件的时候,运行run as maven build的时候报错
-Dmaven.multiModuleProjectDirectory system propery is not set. Check $M2_HOME environment variable and mvn script match.
可以设一个环境变量M2_HOME指
- timer cancel方法的一个小实例
alleni123
多线程timer
package com.lj.timer;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
public class MyTimer extends TimerTask
{
private int a;
private Timer timer;
pub
- MySQL数据库在Linux下的安装
ducklsl
mysql
1.建好一个专门放置MySQL的目录
/mysql/db数据库目录
/mysql/data数据库数据文件目录
2.配置用户,添加专门的MySQL管理用户
>groupadd mysql ----添加用户组
>useradd -g mysql mysql ----在mysql用户组中添加一个mysql用户
3.配置,生成并安装MySQL
>cmake -D
- spring------>>cvc-elt.1: Cannot find the declaration of element
Array_06
springbean
将--------
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3
- maven发布第三方jar的一些问题
cugfy
maven
maven中发布 第三方jar到nexus仓库使用的是 deploy:deploy-file命令
有许多参数,具体可查看
http://maven.apache.org/plugins/maven-deploy-plugin/deploy-file-mojo.html
以下是一个例子:
mvn deploy:deploy-file -DgroupId=xpp3
- MYSQL下载及安装
357029540
mysql
好久没有去安装过MYSQL,今天自己在安装完MYSQL过后用navicat for mysql去厕测试链接的时候出现了10061的问题,因为的的MYSQL是最新版本为5.6.24,所以下载的文件夹里没有my.ini文件,所以在网上找了很多方法还是没有找到怎么解决问题,最后看到了一篇百度经验里有这个的介绍,按照其步骤也完成了安装,在这里给大家分享下这个链接的地址
- ios TableView cell的布局
张亚雄
tableview
cell.imageView.image = [UIImage imageNamed:[imageArray objectAtIndex:[indexPath row]]];
CGSize itemSize = CGSizeMake(60, 50);
&nbs
- Java编码转义
adminjun
java编码转义
import java.io.UnsupportedEncodingException;
/**
* 转换字符串的编码
*/
public class ChangeCharset {
/** 7位ASCII字符,也叫作ISO646-US、Unicode字符集的基本拉丁块 */
public static final Strin
- Tomcat 配置和spring
aijuans
spring
简介
Tomcat启动时,先找系统变量CATALINA_BASE,如果没有,则找CATALINA_HOME。然后找这个变量所指的目录下的conf文件夹,从中读取配置文件。最重要的配置文件:server.xml 。要配置tomcat,基本上了解server.xml,context.xml和web.xml。
Server.xml -- tomcat主
- Java打印当前目录下的所有子目录和文件
ayaoxinchao
递归File
其实这个没啥技术含量,大湿们不要操笑哦,只是做一个简单的记录,简单用了一下递归算法。
import java.io.File;
/**
* @author Perlin
* @date 2014-6-30
*/
public class PrintDirectory {
public static void printDirectory(File f
- linux安装mysql出现libs报冲突解决
BigBird2012
linux
linux安装mysql出现libs报冲突解决
安装mysql出现
file /usr/share/mysql/ukrainian/errmsg.sys from install of MySQL-server-5.5.33-1.linux2.6.i386 conflicts with file from package mysql-libs-5.1.61-4.el6.i686
- jedis连接池使用实例
bijian1013
redisjedis连接池jedis
实例代码:
package com.bijian.study;
import java.util.ArrayList;
import java.util.List;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoo
- 关于朋友
bingyingao
朋友兴趣爱好维持
成为朋友的必要条件:
志相同,道不合,可以成为朋友。譬如马云、周星驰一个是商人,一个是影星,可谓道不同,但都很有梦想,都要在各自领域里做到最好,当他们遇到一起,互相欣赏,可以畅谈两个小时。
志不同,道相合,也可以成为朋友。譬如有时候看到两个一个成绩很好每次考试争做第一,一个成绩很差的同学是好朋友。他们志向不相同,但他
- 【Spark七十九】Spark RDD API一
bit1129
spark
aggregate
package spark.examples.rddapi
import org.apache.spark.{SparkConf, SparkContext}
//测试RDD的aggregate方法
object AggregateTest {
def main(args: Array[String]) {
val conf = new Spar
- ktap 0.1 released
bookjovi
kerneltracing
Dear,
I'm pleased to announce that ktap release v0.1, this is the first official
release of ktap project, it is expected that this release is not fully
functional or very stable and we welcome bu
- 能保存Properties文件注释的Properties工具类
BrokenDreams
properties
今天遇到一个小需求:由于java.util.Properties读取属性文件时会忽略注释,当写回去的时候,注释都没了。恰好一个项目中的配置文件会在部署后被某个Java程序修改一下,但修改了之后注释全没了,可能会给以后的参数调整带来困难。所以要解决这个问题。
&nb
- 读《研磨设计模式》-代码笔记-外观模式-Facade
bylijinnan
java设计模式
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/
/*
* 百度百科的定义:
* Facade(外观)模式为子系统中的各类(或结构与方法)提供一个简明一致的界面,
* 隐藏子系统的复杂性,使子系统更加容易使用。他是为子系统中的一组接口所提供的一个一致的界面
*
* 可简单地
- After Effects教程收集
cherishLC
After Effects
1、中文入门
http://study.163.com/course/courseMain.htm?courseId=730009
2、videocopilot英文入门教程(中文字幕)
http://www.youku.com/playlist_show/id_17893193.html
英文原址:
http://www.videocopilot.net/basic/
素
- Linux Apache 安装过程
crabdave
apache
Linux Apache 安装过程
下载新版本:
apr-1.4.2.tar.gz(下载网站:http://apr.apache.org/download.cgi)
apr-util-1.3.9.tar.gz(下载网站:http://apr.apache.org/download.cgi)
httpd-2.2.15.tar.gz(下载网站:http://httpd.apac
- Shell学习 之 变量赋值和引用
daizj
shell变量引用赋值
本文转自:http://www.cnblogs.com/papam/articles/1548679.html
Shell编程中,使用变量无需事先声明,同时变量名的命名须遵循如下规则:
首个字符必须为字母(a-z,A-Z)
中间不能有空格,可以使用下划线(_)
不能使用标点符号
不能使用bash里的关键字(可用help命令查看保留关键字)
需要给变量赋值时,可以这么写:
- Java SE 第一讲(Java SE入门、JDK的下载与安装、第一个Java程序、Java程序的编译与执行)
dcj3sjt126com
javajdk
Java SE 第一讲:
Java SE:Java Standard Edition
Java ME: Java Mobile Edition
Java EE:Java Enterprise Edition
Java是由Sun公司推出的(今年初被Oracle公司收购)。
收购价格:74亿美金
J2SE、J2ME、J2EE
JDK:Java Development
- YII给用户登录加上验证码
dcj3sjt126com
yii
1、在SiteController中添加如下代码:
/**
* Declares class-based actions.
*/
public function actions() {
return array(
// captcha action renders the CAPTCHA image displ
- Lucene使用说明
dyy_gusi
Lucenesearch分词器
Lucene使用说明
1、lucene简介
1.1、什么是lucene
Lucene是一个全文搜索框架,而不是应用产品。因此它并不像baidu或者googleDesktop那种拿来就能用,它只是提供了一种工具让你能实现这些产品和功能。
1.2、lucene能做什么
要回答这个问题,先要了解lucene的本质。实际
- 学习编程并不难,做到以下几点即可!
gcq511120594
数据结构编程算法
不论你是想自己设计游戏,还是开发iPhone或安卓手机上的应用,还是仅仅为了娱乐,学习编程语言都是一条必经之路。编程语言种类繁多,用途各 异,然而一旦掌握其中之一,其他的也就迎刃而解。作为初学者,你可能要先从Java或HTML开始学,一旦掌握了一门编程语言,你就发挥无穷的想象,开发 各种神奇的软件啦。
1、确定目标
学习编程语言既充满乐趣,又充满挑战。有些花费多年时间学习一门编程语言的大学生到
- Java面试十问之三:Java与C++内存回收机制的差别
HNUlanwei
javaC++finalize()堆栈内存回收
大家知道, Java 除了那 8 种基本类型以外,其他都是对象类型(又称为引用类型)的数据。 JVM 会把程序创建的对象存放在堆空间中,那什么又是堆空间呢?其实,堆( Heap)是一个运行时的数据存储区,从它可以分配大小各异的空间。一般,运行时的数据存储区有堆( Heap)和堆栈( Stack),所以要先看它们里面可以分配哪些类型的对象实体,然后才知道如何均衡使用这两种存储区。一般来说,栈中存放的
- 第二章 Nginx+Lua开发入门
jinnianshilongnian
nginxlua
Nginx入门
本文目的是学习Nginx+Lua开发,对于Nginx基本知识可以参考如下文章:
nginx启动、关闭、重启
http://www.cnblogs.com/derekchen/archive/2011/02/17/1957209.html
agentzh 的 Nginx 教程
http://openresty.org/download/agentzh-nginx-tutor
- MongoDB windows安装 基本命令
liyonghui160com
windows安装
安装目录:
D:\MongoDB\
新建目录
D:\MongoDB\data\db
4.启动进城:
cd D:\MongoDB\bin
mongod -dbpath D:\MongoDB\data\db
&n
- Linux下通过源码编译安装程序
pda158
linux
一、程序的组成部分 Linux下程序大都是由以下几部分组成: 二进制文件:也就是可以运行的程序文件 库文件:就是通常我们见到的lib目录下的文件 配置文件:这个不必多说,都知道 帮助文档:通常是我们在linux下用man命令查看的命令的文档
二、linux下程序的存放目录 linux程序的存放目录大致有三个地方: /etc, /b
- WEB开发编程的职业生涯4个阶段
shw3588
编程Web工作生活
觉得自己什么都会
2007年从学校毕业,凭借自己原创的ASP毕业设计,以为自己很厉害似的,信心满满去东莞找工作,找面试成功率确实很高,只是工资不高,但依旧无法磨灭那过分的自信,那时候什么考勤系统、什么OA系统、什么ERP,什么都觉得有信心,这样的生涯大概持续了约一年。
根本不是自己想的那样
2008年开始接触很多工作相关的东西,发现太多东西自己根本不会,都需要去学,不管是asp还是js,
- 遭遇jsonp同域下变作post请求的坑
vb2005xu
jsonp同域post
今天迁移一个站点时遇到一个坑爹问题,同一个jsonp接口在跨域时都能调用成功,但是在同域下调用虽然成功,但是数据却有问题. 此处贴出我的后端代码片段
$mi_id = htmlspecialchars(trim($_GET['mi_id ']));
$mi_cv = htmlspecialchars(trim($_GET['mi_cv ']));
贴出我前端代码片段:
$.aj