Asterisk in Docker: Difference between revisions
Brian Wilson (talk | contribs) |
Brian Wilson (talk | contribs) |
||
Line 41: | Line 41: | ||
== Launch server == | == Launch server == | ||
docker run - | Using the --net=host option is not a best practice because it exposes every port running on the docker machine. | ||
It means it looks like Asterisk is just running on Bellman, not inside a container. | |||
docker run -d --net=host --name=asterisk asterisk | |||
I don't think I need any -p port mappings or --expose if I use --net=host, and though it's not "best practices" | |||
it will make Asterisk networking problems go away pretty much. | |||
== Console == | == Console == |
Revision as of 05:35, 6 November 2018
Read the Docker page if you don't know what Docker is.
Notes on building a current executable, the old way: Building Asterisk
Building a docker container
I used with the github respoke/asterisk image as my starting point.
git clone [email protected]:respoke/asterisk-docker.git
Then I broke respoke's image out into two parts, so that it would build faster.
Currently I work logged into Bellman.
I have a Debian Stretch container wildsong/build that has all the tools in it, when the container builds it downloads sources and configures and compiles them.
cd source/docker/docker-build
Once the 'build' container is working, check in changes to github and a new copy will build at hub.docker.com.
Configuration
Put environment settings into Dockerfile and add j2 config files that I created for Fogg.
The configuration is entirely file based because my home phone system is relatively static.
The docker-asterisk container configures Asterisk based on templates in etc_asterisk.
cd source/docker/docker-asterisk edit Dockerfile to adjust environment cd etc_asterisk edit files cd .. docker rm -f asterisk docker build -t asterisk .
Launch server
Using the --net=host option is not a best practice because it exposes every port running on the docker machine. It means it looks like Asterisk is just running on Bellman, not inside a container.
docker run -d --net=host --name=asterisk asterisk
I don't think I need any -p port mappings or --expose if I use --net=host, and though it's not "best practices" it will make Asterisk networking problems go away pretty much.
Console
You can connect to the Asterisk console directly with this command
docker exec -it asterisk asterisk -r
Or you can connect the usual way via a bash shell
docker exec -it asterisk bash
tcpdump -n not port 22 and not arp and not host 192.168.123.159
Connected phones
I don't know how to see what phones are registered with pjsip!??
I started a separate page for it, PJSIP.