WEBVTT

1
00:00:00.120 --> 00:00:02.480
<v Speaker 1>Welcome to the deep dive. So think about this for

2
00:00:02.520 --> 00:00:06.080
<v Speaker 1>a second. Imagine you can like totally control your entire

3
00:00:06.080 --> 00:00:12.400
<v Speaker 1>communication system, really shape it into something powerful, precise, totally

4
00:00:12.439 --> 00:00:16.640
<v Speaker 1>customized for you, like turning your phone system into well,

5
00:00:16.760 --> 00:00:19.600
<v Speaker 1>the source we're using calls it a digital Samurai sord.

6
00:00:19.480 --> 00:00:22.000
<v Speaker 2>Right, a samurai sword, I like that, And today that's

7
00:00:22.039 --> 00:00:25.199
<v Speaker 2>exactly what we're diving into. Asterisk. It's this open source

8
00:00:25.280 --> 00:00:30.760
<v Speaker 2>PBX private branch exchange, and its capabilities are pretty incredible, Okay.

9
00:00:30.879 --> 00:00:34.880
<v Speaker 2>Our mission really is to unpack the basics, figure out

10
00:00:34.880 --> 00:00:37.799
<v Speaker 2>how it's kind of revolutionizing communication and look at some

11
00:00:38.240 --> 00:00:42.759
<v Speaker 2>honestly surprising uses like running a whole virtual call center

12
00:00:42.840 --> 00:00:44.000
<v Speaker 2>or even yeah.

13
00:00:43.920 --> 00:00:46.640
<v Speaker 1>Security audits, purity audits. Okay, interesting, and yeah you mentioned

14
00:00:46.679 --> 00:00:50.119
<v Speaker 1>our source. We're digging into Asterisk hacking toolkit and live

15
00:00:50.159 --> 00:00:52.039
<v Speaker 1>CD sounds pretty technical.

16
00:00:51.840 --> 00:00:55.159
<v Speaker 2>It is, yeah, but fascinating stuff. Get ready for some

17
00:00:55.159 --> 00:00:58.159
<v Speaker 2>some real aha moments because this view on telecoms, Yeah,

18
00:00:58.159 --> 00:00:59.399
<v Speaker 2>it might genuinely surprise you.

19
00:00:59.399 --> 00:01:02.560
<v Speaker 1>All right, let's do it. So foundation first, what exactly

20
00:01:02.640 --> 00:01:04.200
<v Speaker 1>is a PBX break it down for us?

21
00:01:04.359 --> 00:01:07.480
<v Speaker 2>Okay, right, So basically, a PBX is the gear, the

22
00:01:07.560 --> 00:01:11.439
<v Speaker 2>equipment that handles phone switching for a private business like

23
00:01:11.480 --> 00:01:14.920
<v Speaker 2>an internal switchboard exactly. It keeps your internal calls, you

24
00:01:15.000 --> 00:01:18.560
<v Speaker 2>talking to a colleague, say, totally inside your network. And

25
00:01:18.640 --> 00:01:21.239
<v Speaker 2>it also manages all the connections going out to the

26
00:01:21.280 --> 00:01:22.200
<v Speaker 2>regular phone network.

27
00:01:22.280 --> 00:01:24.680
<v Speaker 1>Gotcha, And I bet these things have changed a lot.

28
00:01:24.760 --> 00:01:27.680
<v Speaker 1>I remember hearing that, like before the big Bell system

29
00:01:27.719 --> 00:01:31.200
<v Speaker 1>breakup in eighty four, PBXs were massive, huge, like.

30
00:01:31.239 --> 00:01:34.159
<v Speaker 2>Room size sometimes. But after the breakup, Yeah, they shrank

31
00:01:34.239 --> 00:01:36.640
<v Speaker 2>like crazy. The source says, from the size of a

32
00:01:36.680 --> 00:01:38.439
<v Speaker 2>couch to the size of a briefcase.

33
00:01:38.560 --> 00:01:39.040
<v Speaker 1>Wow.

34
00:01:39.400 --> 00:01:42.079
<v Speaker 2>And that shrinkage. It just flooded the market with new

35
00:01:42.120 --> 00:01:44.400
<v Speaker 2>systems and suddenly we got all these features we just

36
00:01:44.439 --> 00:01:48.840
<v Speaker 2>expect now, voicemail, interactive menus, call waiting, caller ID, even

37
00:01:48.959 --> 00:01:53.159
<v Speaker 2>music on hold. It really really changed how businesses communicated.

38
00:01:53.400 --> 00:01:57.400
<v Speaker 1>But I imagine that explosion of options created its own problems.

39
00:01:57.000 --> 00:02:00.280
<v Speaker 2>Right Debfinitely A big one was vendor lock in. See

40
00:02:00.280 --> 00:02:03.920
<v Speaker 2>each company each vendor often had their own special phones.

41
00:02:04.159 --> 00:02:07.879
<v Speaker 1>So company Ex's phone wouldn't work with company wise system.

42
00:02:07.879 --> 00:02:11.719
<v Speaker 2>Exactly, total headache for businesses, and sometimes vendors would set

43
00:02:11.719 --> 00:02:15.919
<v Speaker 2>things up and then just disappear, leaving customers totally stranded.

44
00:02:15.960 --> 00:02:16.759
<v Speaker 2>If something went wrong.

45
00:02:16.960 --> 00:02:19.280
<v Speaker 1>Ouch. Okay, so that sounds like a perfect setup for

46
00:02:19.319 --> 00:02:23.800
<v Speaker 1>something disruptive to come along, like voiceover IP VoIP.

47
00:02:24.000 --> 00:02:27.240
<v Speaker 2>Precisely, VoIP really shakes things up. The core idea is

48
00:02:27.319 --> 00:02:31.280
<v Speaker 2>sending your voice calls over your existing data networks, your

49
00:02:31.280 --> 00:02:32.319
<v Speaker 2>computer network, and.

50
00:02:32.319 --> 00:02:34.159
<v Speaker 1>The big draw there is cost I assume.

51
00:02:34.280 --> 00:02:37.800
<v Speaker 2>Oh yeah, often these calls can be basically free or

52
00:02:37.919 --> 00:02:38.639
<v Speaker 2>very close to it.

53
00:02:38.759 --> 00:02:42.159
<v Speaker 1>How does that work though, squeezing voice onto a data line.

54
00:02:42.400 --> 00:02:45.919
<v Speaker 2>It's all about compression using things called codex. Think of

55
00:02:45.919 --> 00:02:48.240
<v Speaker 2>them like ZIP files for your voice. Okay, So a

56
00:02:48.280 --> 00:02:50.960
<v Speaker 2>standard old phone call using something called MA law took

57
00:02:51.039 --> 00:02:53.879
<v Speaker 2>up about sixty four kilobits per second, which meant a

58
00:02:53.919 --> 00:02:57.039
<v Speaker 2>T one line pretty common back then, could only handle

59
00:02:57.080 --> 00:02:58.520
<v Speaker 2>maybe twenty four calls at once.

60
00:02:58.680 --> 00:03:00.680
<v Speaker 1>Okay, twenty four calls. It seems limiting.

61
00:03:00.879 --> 00:03:04.159
<v Speaker 2>It was, but with newer codex those numbers just shoot up.

62
00:03:04.479 --> 00:03:07.199
<v Speaker 2>Take G point seventy twenty nine. That drops the bandwidth

63
00:03:07.319 --> 00:03:08.800
<v Speaker 2>need down to just eight kbps.

64
00:03:08.919 --> 00:03:10.000
<v Speaker 1>Wow, big difference.

65
00:03:10.479 --> 00:03:13.919
<v Speaker 2>Huge. Suddenly that same T one line handles one hundred

66
00:03:13.919 --> 00:03:17.199
<v Speaker 2>and ninety two calls, though that one needs a license.

67
00:03:17.319 --> 00:03:19.879
<v Speaker 2>But then you get really extreme ones like LPC.

68
00:03:19.639 --> 00:03:21.360
<v Speaker 1>Ten LPC ten. What's that one like?

69
00:03:21.560 --> 00:03:24.919
<v Speaker 2>Okay, this one's tiny two point five kbpcs. It's like

70
00:03:25.159 --> 00:03:27.199
<v Speaker 2>six hundred and fourteen calls on that same T one

71
00:03:27.240 --> 00:03:28.120
<v Speaker 2>line sixt fourteen.

72
00:03:28.199 --> 00:03:31.240
<v Speaker 1>That's insane efficiency. But what's the catch? What does it

73
00:03:31.280 --> 00:03:31.719
<v Speaker 1>sound like?

74
00:03:32.039 --> 00:03:34.240
<v Speaker 2>Well, this is where the source has that memorable detail.

75
00:03:34.759 --> 00:03:37.960
<v Speaker 2>It apparently often sounds like two whales making mating calls.

76
00:03:38.120 --> 00:03:40.840
<v Speaker 1>Chuckles seriously whales.

77
00:03:40.680 --> 00:03:46.120
<v Speaker 2>Yep intelligible supposedly, but ah yeah, not exactly professional sounding,

78
00:03:46.199 --> 00:03:49.520
<v Speaker 2>probably not. But it shows you right, how those early

79
00:03:49.599 --> 00:03:53.159
<v Speaker 2>VoIP engineers were just pushing the absolute limits, prioritizing cost

80
00:03:53.199 --> 00:03:55.800
<v Speaker 2>savings over perfect audio quality. It's a clear trade off.

81
00:03:56.120 --> 00:03:58.120
<v Speaker 2>More compression lower quality makes sense.

82
00:03:58.439 --> 00:04:01.520
<v Speaker 1>So besides compression and cost, what else did VIP really unlock?

83
00:04:01.680 --> 00:04:03.840
<v Speaker 2>Mobility? That's the other huge one. What happens when your

84
00:04:03.879 --> 00:04:05.439
<v Speaker 2>team isn't all in one building.

85
00:04:05.240 --> 00:04:08.280
<v Speaker 1>Right, remote work, traveling salespeople exactly?

86
00:04:08.520 --> 00:04:11.280
<v Speaker 2>With voyip, your phone calls can follow you anywhere you

87
00:04:11.319 --> 00:04:14.680
<v Speaker 2>have a data connection, home broadband, the office network. Even

88
00:04:15.479 --> 00:04:19.360
<v Speaker 2>the source mentions Wi Fi at a local drinking establishment.

89
00:04:19.000 --> 00:04:22.160
<v Speaker 1>Lefs, so your pub becomes your office extension.

90
00:04:22.240 --> 00:04:24.920
<v Speaker 2>Kinda yeah, your sales team could be all over the country.

91
00:04:24.959 --> 00:04:27.240
<v Speaker 2>But their phone number is still just an extension on

92
00:04:27.279 --> 00:04:31.160
<v Speaker 2>the company PBX. They get voicemail, all the features, just

93
00:04:31.199 --> 00:04:32.319
<v Speaker 2>like they were sitting at their desk.

94
00:04:32.680 --> 00:04:36.360
<v Speaker 1>That flexibility is massive for how businesses can operate now.

95
00:04:36.399 --> 00:04:39.399
<v Speaker 1>But it's worth pointing out VOYAP itself isn't just an

96
00:04:39.439 --> 00:04:40.639
<v Speaker 1>asterisk thing, is it?

97
00:04:40.720 --> 00:04:44.519
<v Speaker 2>Oh? Definitely not. Traditional PBX makers, the big phone companies,

98
00:04:44.680 --> 00:04:47.560
<v Speaker 2>they've all adopted VOYP too. It's become pretty standard.

99
00:04:47.759 --> 00:04:50.959
<v Speaker 1>But asterisk it came from a different place, didn't it.

100
00:04:51.000 --> 00:04:52.240
<v Speaker 1>The origin store is pretty cool.

101
00:04:52.360 --> 00:04:54.519
<v Speaker 2>It really is. Back in nineteen ninety nine, this guy,

102
00:04:54.560 --> 00:04:57.600
<v Speaker 2>Mark Spencer, he needed a PBX for his own company. Okay,

103
00:04:57.800 --> 00:05:02.319
<v Speaker 2>looked around, found everything cost an armor a leg sound familiar. Yeah,

104
00:05:02.839 --> 00:05:04.720
<v Speaker 2>So what does he do? Just decides to build his

105
00:05:04.759 --> 00:05:05.920
<v Speaker 2>own from scratch.

106
00:05:06.040 --> 00:05:08.519
<v Speaker 1>Wow, just build the phone system.

107
00:05:08.720 --> 00:05:11.560
<v Speaker 2>Yep. Now the source material we're using, it's honest. It

108
00:05:11.600 --> 00:05:13.360
<v Speaker 2>says asterisk is hard.

109
00:05:13.920 --> 00:05:16.839
<v Speaker 1>Okay, good to know, not necessarily plug and play.

110
00:05:16.720 --> 00:05:19.839
<v Speaker 2>Not initially no ye. But it also says once you

111
00:05:19.920 --> 00:05:23.720
<v Speaker 2>become familiar with its intricacies, everything suddenly starts to make sense,

112
00:05:24.759 --> 00:05:27.240
<v Speaker 2>which is kind of true for a lot of powerful

113
00:05:27.279 --> 00:05:28.360
<v Speaker 2>open source stuff, right.

114
00:05:28.480 --> 00:05:32.360
<v Speaker 1>Yeah, that tracks steep learning curve, but big payoff.

115
00:05:32.079 --> 00:05:35.680
<v Speaker 2>Exactly, and that payoff the real world advantages they're huge.

116
00:05:36.120 --> 00:05:37.319
<v Speaker 2>Think about virtual.

117
00:05:36.959 --> 00:05:40.759
<v Speaker 1>Call centers right before VoIP, that meant tons of physical

118
00:05:40.800 --> 00:05:44.079
<v Speaker 1>space or paying a fortune to forward calls to people's

119
00:05:44.120 --> 00:05:45.120
<v Speaker 1>homes exactly.

120
00:05:45.319 --> 00:05:49.000
<v Speaker 2>But with Asterisk and VoIP, a call center can run

121
00:05:49.040 --> 00:05:52.720
<v Speaker 2>with barely any physical office. Agents just need broadband wherever

122
00:05:52.720 --> 00:05:53.040
<v Speaker 2>they are.

123
00:05:53.199 --> 00:05:55.040
<v Speaker 1>And that's not just for call centers, right, and any

124
00:05:55.040 --> 00:05:57.160
<v Speaker 1>company with remote workers, any mobile workforce.

125
00:05:57.240 --> 00:06:00.160
<v Speaker 2>Yeah, it translates directly into cost savings too. Right, if

126
00:06:00.160 --> 00:06:03.240
<v Speaker 2>your company already has data links between buildings or cities.

127
00:06:03.000 --> 00:06:05.759
<v Speaker 1>You just route the voice calls over those existing links.

128
00:06:05.639 --> 00:06:09.399
<v Speaker 2>BINGO, save money, free up your old phone lines. Plus,

129
00:06:09.480 --> 00:06:12.480
<v Speaker 2>think about how many people have phones, way more than

130
00:06:12.519 --> 00:06:16.360
<v Speaker 2>have reliable computer access sometimes the digital divide. Right. Sure,

131
00:06:16.560 --> 00:06:19.680
<v Speaker 2>Asterisk lets you build voice based applications that can reach

132
00:06:19.680 --> 00:06:23.639
<v Speaker 2>almost anyone. It dramatically expands who you can communicate with.

133
00:06:23.800 --> 00:06:26.120
<v Speaker 1>Okay, So if people are listening and thinking this sounds interesting,

134
00:06:26.199 --> 00:06:27.480
<v Speaker 1>where do they go to learn more?

135
00:06:27.720 --> 00:06:31.319
<v Speaker 2>Good question. Www dot asterisk dot org is the main

136
00:06:31.399 --> 00:06:36.680
<v Speaker 2>spot downloads news, developer info and www dot digm dot com.

137
00:06:36.680 --> 00:06:40.279
<v Speaker 2>That's Mark Spencer's company, The Driving Force behind Asterisk they

138
00:06:40.319 --> 00:06:41.720
<v Speaker 2>offer training hardware, that.

139
00:06:41.680 --> 00:06:44.160
<v Speaker 1>Kind of stuff, got it, asterisk dot org and digim

140
00:06:44.199 --> 00:06:47.160
<v Speaker 1>dot com. Okay, so we've painted this picture of asterisks potential.

141
00:06:47.560 --> 00:06:49.560
<v Speaker 1>Let's say someone's listening and thinking, right, I want to

142
00:06:49.560 --> 00:06:52.480
<v Speaker 1>build my own voice kingdom. Where do they even start

143
00:06:52.480 --> 00:06:54.439
<v Speaker 1>with the hardware? What bits and pieces do you need?

144
00:06:54.639 --> 00:06:59.399
<v Speaker 2>Okay? Hardware? First up the server. Interestingly, the Asterisk software

145
00:06:59.439 --> 00:07:03.439
<v Speaker 2>itself tiny, doesn't need much storage really, and then you

146
00:07:03.480 --> 00:07:06.279
<v Speaker 2>start adding things voice prompts for menus to press one

147
00:07:06.279 --> 00:07:06.920
<v Speaker 2>for sale.

148
00:07:06.759 --> 00:07:09.120
<v Speaker 1>The IVR right Interactive Voice Response.

149
00:07:09.120 --> 00:07:12.600
<v Speaker 2>Exactly, and of course voicemail. That's when the storage footprint

150
00:07:12.600 --> 00:07:15.079
<v Speaker 2>starts to grow. You need to plan based on how

151
00:07:15.120 --> 00:07:17.879
<v Speaker 2>many users you'll have how much voicemail they might save.

152
00:07:18.079 --> 00:07:21.040
<v Speaker 1>Okay, so server space depends on usage. What about the

153
00:07:21.079 --> 00:07:23.759
<v Speaker 1>phones themselves? Do you need special IP phones?

154
00:07:23.920 --> 00:07:26.560
<v Speaker 2>You can use dedicated IP phones, yeah, like the Cisco

155
00:07:26.600 --> 00:07:29.759
<v Speaker 2>seven nine sixties mentioned in the source. But there's also

156
00:07:29.800 --> 00:07:34.439
<v Speaker 2>this clever little gadget called an ATA Analog Telephone.

157
00:07:34.040 --> 00:07:36.279
<v Speaker 1>Adapter AKA what's that do?

158
00:07:36.639 --> 00:07:41.040
<v Speaker 2>It's basically the Source calls it the bridge between the

159
00:07:41.079 --> 00:07:43.800
<v Speaker 2>world of analog telephones and the world of VoIP.

160
00:07:44.120 --> 00:07:46.199
<v Speaker 1>Ah. So let's you plug in a regular old phone

161
00:07:46.319 --> 00:07:47.199
<v Speaker 1>pretty much like.

162
00:07:47.120 --> 00:07:48.680
<v Speaker 2>The one you might have at home, plug it into

163
00:07:48.680 --> 00:07:51.160
<v Speaker 2>the ATA, plug the ATA to your network, and boom

164
00:07:51.160 --> 00:07:53.959
<v Speaker 2>it talks of VOYIP. They're usually cheaper than ipphones.

165
00:07:54.000 --> 00:07:56.000
<v Speaker 1>That's smart leverage existing hardware.

166
00:07:56.120 --> 00:08:00.279
<v Speaker 2>Yep. They work with most standard analog phones, but not

167
00:08:00.360 --> 00:08:04.040
<v Speaker 2>those proprietary digital phones from old pbx's or really old

168
00:08:04.120 --> 00:08:07.920
<v Speaker 2>rotary dial phones. Why not rotary because apparently pulse diyling

169
00:08:08.040 --> 00:08:11.720
<v Speaker 2>is an obsolete protocol for most atas they expect touchstones.

170
00:08:11.920 --> 00:08:14.959
<v Speaker 1>Huh okay, good to know. No rotary dialing on your

171
00:08:14.959 --> 00:08:18.160
<v Speaker 1>fancy OIP system. What if you want to connect analog

172
00:08:18.199 --> 00:08:21.040
<v Speaker 1>phones directly to the server, though maybe for more control.

173
00:08:21.279 --> 00:08:24.480
<v Speaker 2>For that, you'd use interface cards like digitm sells cards

174
00:08:24.480 --> 00:08:27.199
<v Speaker 2>that can handle anywhere from one analog phone up to

175
00:08:27.600 --> 00:08:30.120
<v Speaker 2>like ninety six on a single card. Wow okay, and

176
00:08:30.160 --> 00:08:33.360
<v Speaker 2>these cards often do support pulse diyling for those vintage

177
00:08:33.360 --> 00:08:37.559
<v Speaker 2>phone enthusiasts. You can also get cards to connect to preis.

178
00:08:37.240 --> 00:08:40.039
<v Speaker 1>Pre I's primary rate interfaces. Those are the big digital

179
00:08:40.080 --> 00:08:41.279
<v Speaker 1>lines from the phone company right now.

180
00:08:41.360 --> 00:08:43.720
<v Speaker 2>Yeah, exactly, high capacity usually twenty three or twenty four

181
00:08:43.799 --> 00:08:46.440
<v Speaker 2>voice channels. You can use a channel bank to split

182
00:08:46.480 --> 00:08:49.399
<v Speaker 2>that PI signal out to individual analog phones or lines

183
00:08:49.399 --> 00:08:49.919
<v Speaker 2>if you need to.

184
00:08:50.159 --> 00:08:55.120
<v Speaker 1>Okay, so hardware sorted server phones or atas, maybe interface cards.

185
00:08:55.240 --> 00:08:57.679
<v Speaker 1>Now the network voice sounds like it would be pretty

186
00:08:57.720 --> 00:08:59.000
<v Speaker 1>demanding on the network.

187
00:08:58.679 --> 00:09:03.360
<v Speaker 2>It can be. Yeah, remember that oilaw codec sixty four kbps,

188
00:09:03.519 --> 00:09:05.200
<v Speaker 2>which is eight kilobytes per second.

189
00:09:05.360 --> 00:09:07.679
<v Speaker 1>Okay, eight kbbs doesn't sound like much on its own,

190
00:09:07.879 --> 00:09:08.200
<v Speaker 1>not for.

191
00:09:08.200 --> 00:09:11.759
<v Speaker 2>One call, No, but scale it up. Imagine say twenty

192
00:09:11.799 --> 00:09:15.360
<v Speaker 2>five hundred simultaneous calls. Now you're talking a constant stream

193
00:09:15.399 --> 00:09:18.600
<v Speaker 2>of twenty megabytes per second just for voice traffic. That

194
00:09:18.639 --> 00:09:21.679
<v Speaker 2>definitely highlights why your network backbone needs to be solid.

195
00:09:21.960 --> 00:09:24.519
<v Speaker 1>Right, So, if you've got voice and regular computer data

196
00:09:24.559 --> 00:09:28.080
<v Speaker 1>flying around, how do you stop like a big file

197
00:09:28.200 --> 00:09:31.080
<v Speaker 1>download for making your phone calls sound terrible? I guess

198
00:09:31.159 --> 00:09:35.600
<v Speaker 1>vlands come into play here. Virtual local area networks absolutely essential.

199
00:09:35.799 --> 00:09:39.200
<v Speaker 2>Vlands are basically a software trick in your network switches.

200
00:09:39.360 --> 00:09:43.159
<v Speaker 2>They let you create virtual partitions on the same physical network,

201
00:09:43.279 --> 00:09:43.480
<v Speaker 2>so you.

202
00:09:43.440 --> 00:09:45.639
<v Speaker 1>Can put all the phones on one virtual network and

203
00:09:45.679 --> 00:09:46.840
<v Speaker 1>all the computers on another.

204
00:09:47.000 --> 00:09:50.080
<v Speaker 2>Exactly keep the voice traffic totally separate from the data traffic.

205
00:09:50.639 --> 00:09:53.879
<v Speaker 2>That massive file transfer won't interfere with cul quality then,

206
00:09:54.679 --> 00:09:58.200
<v Speaker 2>and this separation it's also a big win for security.

207
00:09:58.279 --> 00:09:59.759
<v Speaker 1>How so security for voice?

208
00:10:00.120 --> 00:10:03.200
<v Speaker 2>Yeah, just like any data VOYP traffic can be sniffed.

209
00:10:03.279 --> 00:10:06.320
<v Speaker 2>There are automated tools out there. The source mentions vomit

210
00:10:06.399 --> 00:10:09.440
<v Speaker 2>and cane enable that attackers can use to just listen

211
00:10:09.480 --> 00:10:12.200
<v Speaker 2>in and record calls. But if your voice traffic is

212
00:10:12.200 --> 00:10:15.600
<v Speaker 2>on its own separate VLAN, it creates a barrier, makes

213
00:10:15.639 --> 00:10:17.960
<v Speaker 2>it way harder for someone on the MAINTATA network to

214
00:10:18.039 --> 00:10:22.120
<v Speaker 2>just casually intercept your calls. The absolute best practice a

215
00:10:22.159 --> 00:10:25.799
<v Speaker 2>whole second dedicated ethernet network just for phones, or at

216
00:10:25.840 --> 00:10:27.960
<v Speaker 2>least a very strictly controlled VLAN.

217
00:10:27.960 --> 00:10:31.600
<v Speaker 1>Okay, isolate the voice traffic makes sense. What about optimizing

218
00:10:31.639 --> 00:10:35.279
<v Speaker 1>things over like wider connections between offices.

219
00:10:36.000 --> 00:10:38.960
<v Speaker 2>When optimization right on those wide area networks, you often

220
00:10:39.039 --> 00:10:42.759
<v Speaker 2>use bandwidth shaping, basically telling the network what traffic is.

221
00:10:42.720 --> 00:10:44.919
<v Speaker 1>Most important, so you prioritize the voice.

222
00:10:44.960 --> 00:10:47.679
<v Speaker 2>You can two main ways. You can dedicate a chunk

223
00:10:47.679 --> 00:10:51.240
<v Speaker 2>of bandwidth just for VoIP say one megabit is always

224
00:10:51.240 --> 00:10:54.679
<v Speaker 2>reserved for voice guarantees service, but it's inefficient if no

225
00:10:54.720 --> 00:10:55.120
<v Speaker 2>one's on.

226
00:10:55.080 --> 00:10:57.799
<v Speaker 1>The phone wasted bandwidth then potentially.

227
00:10:57.919 --> 00:11:00.759
<v Speaker 2>The other way is just to prioritize VoIP let data

228
00:11:00.840 --> 00:11:02.600
<v Speaker 2>use one hundred percent if it needs it. But if

229
00:11:02.600 --> 00:11:04.360
<v Speaker 2>a voice pack it comes along, it jumps to the

230
00:11:04.360 --> 00:11:07.360
<v Speaker 2>front of the line. More efficient use of bandwidth, but

231
00:11:07.480 --> 00:11:10.440
<v Speaker 2>maybe slightly less guaranteed quality than pure dedication.

232
00:11:10.639 --> 00:11:15.039
<v Speaker 1>It's a trade off efficiency versus guarantees. Got it okay,

233
00:11:15.120 --> 00:11:19.559
<v Speaker 1>network's tuned. How do you actually get Asterisk installed and running?

234
00:11:19.720 --> 00:11:20.960
<v Speaker 1>What's the typical approach?

235
00:11:21.600 --> 00:11:24.799
<v Speaker 2>Well, there are quite a few Linux distributions built specifically

236
00:11:24.840 --> 00:11:27.960
<v Speaker 2>around Asterisk. One of the most popular, especially for ease

237
00:11:28.000 --> 00:11:30.600
<v Speaker 2>of use, has been tricks Box, trix Box Yeah start

238
00:11:30.639 --> 00:11:33.120
<v Speaker 2>out back in two thousand and five. Is Asterisk get

239
00:11:33.120 --> 00:11:35.519
<v Speaker 2>home really designed to make it simpler for people? It

240
00:11:35.559 --> 00:11:39.639
<v Speaker 2>got acquired by a company called Finality, and Yeah became

241
00:11:39.720 --> 00:11:42.320
<v Speaker 2>super popular, tens of thousands of downloads a month. Apparently

242
00:11:42.639 --> 00:11:43.200
<v Speaker 2>big reason.

243
00:11:43.320 --> 00:11:46.519
<v Speaker 1>It's a web interface, ah, a guy that always helps

244
00:11:46.559 --> 00:11:48.440
<v Speaker 1>lower the barrier to entry definitely.

245
00:11:48.600 --> 00:11:52.600
<v Speaker 2>Trick Box uses tools like PHP can fig, Asterisk, canfig Editor,

246
00:11:52.639 --> 00:11:55.039
<v Speaker 2>and free pbx. These give you a web page you

247
00:11:55.039 --> 00:11:57.240
<v Speaker 2>can log into, just type the server's IP address in

248
00:11:57.279 --> 00:12:00.799
<v Speaker 2>your browser and manage stuff like call recording, conference calls

249
00:12:00.879 --> 00:12:03.039
<v Speaker 2>voicemail all through menus and buttons.

250
00:12:03.120 --> 00:12:06.039
<v Speaker 1>Sounds pretty user friendly for something potentially complex.

251
00:12:06.159 --> 00:12:09.919
<v Speaker 2>It is, but here's a really critical security point from

252
00:12:09.960 --> 00:12:10.639
<v Speaker 2>the source material.

253
00:12:10.759 --> 00:12:11.399
<v Speaker 1>Oh what's that?

254
00:12:11.399 --> 00:12:14.639
<v Speaker 2>That tricks box management system the web in face It

255
00:12:14.639 --> 00:12:16.559
<v Speaker 2>does not use SSL encryption by default.

256
00:12:16.679 --> 00:12:19.399
<v Speaker 1>Wait seriously, no HTTPS.

257
00:12:18.919 --> 00:12:22.919
<v Speaker 2>Nope, which means when you log in your username and

258
00:12:22.960 --> 00:12:26.559
<v Speaker 2>password they're sent in plaintext. Anyone sniffing the network can

259
00:12:26.559 --> 00:12:27.480
<v Speaker 2>see them. Wow.

260
00:12:27.600 --> 00:12:30.639
<v Speaker 1>Okay, that's a massive security hole to be aware of

261
00:12:30.679 --> 00:12:31.919
<v Speaker 1>if you're using that interface.

262
00:12:32.039 --> 00:12:35.360
<v Speaker 2>Absolutely huge. Definitely something to lock down immediately if you

263
00:12:35.399 --> 00:12:38.840
<v Speaker 2>go that route. And while that interface like free pbx

264
00:12:39.279 --> 00:12:40.600
<v Speaker 2>makes things easier.

265
00:12:40.200 --> 00:12:42.120
<v Speaker 1>To start, there's a butt coming, isn't there?

266
00:12:42.240 --> 00:12:44.720
<v Speaker 2>There is? You can grow out of it quickly. Frameworks

267
00:12:44.759 --> 00:12:47.919
<v Speaker 2>like that simplify things, but they also constrain you. If

268
00:12:48.000 --> 00:12:50.039
<v Speaker 2>you want to do something really custom, something the framework

269
00:12:50.120 --> 00:12:53.200
<v Speaker 2>wasn't designed for, it can become a real pain or

270
00:12:53.440 --> 00:12:54.960
<v Speaker 2>just impossible through the GUI.

271
00:12:55.279 --> 00:12:58.519
<v Speaker 1>So for real power users, you eventually need to get

272
00:12:58.519 --> 00:13:00.559
<v Speaker 1>your hands dirty with the actual fig.

273
00:13:00.399 --> 00:13:02.279
<v Speaker 2>File pretty much. Yeah, you need to dive into the

274
00:13:02.279 --> 00:13:03.200
<v Speaker 2>core configuration.

275
00:13:03.360 --> 00:13:05.600
<v Speaker 1>Okay, so how is that structure? Is it just one

276
00:13:05.639 --> 00:13:06.360
<v Speaker 1>giant file?

277
00:13:06.639 --> 00:13:12.080
<v Speaker 2>No, thankfully not Asterisk uses many small configuration files, all

278
00:13:12.399 --> 00:13:15.240
<v Speaker 2>interconnected to one another, like over sixty of them.

279
00:13:15.279 --> 00:13:17.919
<v Speaker 1>Sixty. Wow, that sounds complicated.

280
00:13:18.240 --> 00:13:21.240
<v Speaker 2>It sounds it, but there's a logic to it and

281
00:13:21.279 --> 00:13:24.440
<v Speaker 2>a big advantage. If you mess up one setting in

282
00:13:24.480 --> 00:13:27.879
<v Speaker 2>one file, it's less likely to bring the entire system down.

283
00:13:28.399 --> 00:13:31.159
<v Speaker 2>It helps prevent, as the source puts it, the entire

284
00:13:31.200 --> 00:13:33.600
<v Speaker 2>proverbial house of cards come crashing down.

285
00:13:33.759 --> 00:13:38.000
<v Speaker 1>Ah, modularity, that makes sense. So where does the call

286
00:13:38.080 --> 00:13:38.720
<v Speaker 1>logic live?

287
00:13:39.000 --> 00:13:41.600
<v Speaker 2>That's mainly in the dial plant. Every single call, no

288
00:13:41.639 --> 00:13:44.039
<v Speaker 2>matter where it comes from or where it's going, goes

289
00:13:44.039 --> 00:13:47.720
<v Speaker 2>through the dial plant. It's made up of things called contexts, extensions,

290
00:13:47.759 --> 00:13:48.480
<v Speaker 2>and variables.

291
00:13:48.519 --> 00:13:51.879
<v Speaker 1>Okay, contexts, extensions, variables. Now, the source makes a really

292
00:13:51.919 --> 00:13:56.440
<v Speaker 1>big deal about clarifying something here. Extensions versus channels. They're

293
00:13:56.440 --> 00:13:57.279
<v Speaker 1>not the same thing.

294
00:13:57.279 --> 00:14:00.919
<v Speaker 2>Not at all, and yet it's fundamental to under standing asterisk.

295
00:14:01.480 --> 00:14:05.440
<v Speaker 2>Extensions are the numbers assigned to devices or features like

296
00:14:05.639 --> 00:14:07.279
<v Speaker 2>your desk phone might be extension one oh.

297
00:14:07.240 --> 00:14:09.159
<v Speaker 1>One, okay, the logical number right.

298
00:14:09.360 --> 00:14:11.799
<v Speaker 2>Channels on the other end, are the actual connections to

299
00:14:11.840 --> 00:14:14.480
<v Speaker 2>those devices, the communication pathways.

300
00:14:14.720 --> 00:14:16.600
<v Speaker 1>How does that work in practice? Give me an example.

301
00:14:16.879 --> 00:14:19.360
<v Speaker 2>Sure, you could have one physical phone on your desk,

302
00:14:19.919 --> 00:14:21.559
<v Speaker 2>but maybe you set it up so it rings. If

303
00:14:21.559 --> 00:14:23.960
<v Speaker 2>someone dials extension one oh one or Extension one oh

304
00:14:24.000 --> 00:14:26.799
<v Speaker 2>two or Extension five hundred. Maybe a group put number

305
00:14:27.240 --> 00:14:28.200
<v Speaker 2>three different.

306
00:14:27.919 --> 00:14:31.120
<v Speaker 1>Extensions but only one phone. One physical connection.

307
00:14:30.919 --> 00:14:34.960
<v Speaker 2>Exactly three logical extensions, but only one channel the connection

308
00:14:35.000 --> 00:14:38.960
<v Speaker 2>to your single phone. Extensions are logical channels are physical

309
00:14:39.039 --> 00:14:41.320
<v Speaker 2>or virtual connections? Crucial difference?

310
00:14:41.600 --> 00:14:44.879
<v Speaker 1>Got it? That clarifies things a lot? So the dial

311
00:14:44.919 --> 00:14:48.440
<v Speaker 1>plan uses these. Can you walk through a super simple

312
00:14:48.759 --> 00:14:49.279
<v Speaker 1>call flow?

313
00:14:49.360 --> 00:14:52.840
<v Speaker 2>Yeah, okay, basic call comes in first? Maybe you answer

314
00:14:52.919 --> 00:14:56.039
<v Speaker 2>the call, then play a message using background like that

315
00:14:56.360 --> 00:14:58.559
<v Speaker 2>thank you for calling, Congloma Corp sound.

316
00:14:58.320 --> 00:15:01.519
<v Speaker 1>File right while listening for exactly.

317
00:15:01.080 --> 00:15:03.840
<v Speaker 2>Maybe the message says press one hundred for tech support.

318
00:15:04.279 --> 00:15:06.919
<v Speaker 2>If the caller presses one hundred, the dial plan uses

319
00:15:06.960 --> 00:15:10.320
<v Speaker 2>the dial command. Maybe dialis IP ten to connect them

320
00:15:10.320 --> 00:15:12.759
<v Speaker 2>to the phone at extension ten. If they don't press

321
00:15:12.759 --> 00:15:15.519
<v Speaker 2>anything and the message finishes, maybe you just hang up.

322
00:15:15.639 --> 00:15:17.440
<v Speaker 2>You can also jump between different parts of the dial

323
00:15:17.440 --> 00:15:19.879
<v Speaker 2>plan using go to. It's very step by step like.

324
00:15:19.879 --> 00:15:22.320
<v Speaker 1>Programming a flow chart. Almost I can see how you

325
00:15:22.320 --> 00:15:25.639
<v Speaker 1>can build complex menus. Is there a more like script

326
00:15:25.840 --> 00:15:26.840
<v Speaker 1>like way to write.

327
00:15:26.639 --> 00:15:29.799
<v Speaker 2>These there is. Yeah, it's called extensions dot al, the

328
00:15:29.879 --> 00:15:34.240
<v Speaker 2>Asterisk extensions language developed by Digitium. The source says it's

329
00:15:34.519 --> 00:15:38.480
<v Speaker 2>syntactically much more powerful than the traditional extensions dot com

330
00:15:38.840 --> 00:15:39.600
<v Speaker 2>file format.

331
00:15:39.720 --> 00:15:42.879
<v Speaker 1>AEL sounds like it might appeal more to programmers.

332
00:15:42.320 --> 00:15:45.759
<v Speaker 2>Definitely if you're used to scripting in say Perl or Python,

333
00:15:46.240 --> 00:15:50.200
<v Speaker 2>AEL syntax might feel more natural, more powerful for complex logic.

334
00:15:50.440 --> 00:15:53.919
<v Speaker 1>Cool. Okay, so you've got your internal system configured. Now,

335
00:15:53.919 --> 00:15:56.840
<v Speaker 1>how do you connect this astrisk kingdom to the rest

336
00:15:56.840 --> 00:15:58.559
<v Speaker 1>of the world. What protocols does it use?

337
00:15:58.799 --> 00:16:01.960
<v Speaker 2>Astrisk supports a whole bunch, but for VoIP, the two

338
00:16:02.000 --> 00:16:05.320
<v Speaker 2>big ones you'll run into are SIP and IAX two.

339
00:16:05.759 --> 00:16:09.519
<v Speaker 1>SIP Session Initiation Protocol. That one sounds familiar. It's pretty standard.

340
00:16:09.879 --> 00:16:13.440
<v Speaker 2>SEP is the most common VoIP protocol. It's an official

341
00:16:13.440 --> 00:16:17.120
<v Speaker 2>Internet standard. Pretty much every VoIP phone, every VoIP service

342
00:16:17.120 --> 00:16:18.799
<v Speaker 2>provider supports SIP, so.

343
00:16:18.759 --> 00:16:20.679
<v Speaker 1>That's the one you'd usually use often.

344
00:16:20.919 --> 00:16:26.080
<v Speaker 2>Yes, but it has its quirks, complexities, especially when you're

345
00:16:26.080 --> 00:16:30.000
<v Speaker 2>trying to get calls across different networks through firewalls.

346
00:16:29.399 --> 00:16:31.279
<v Speaker 1>Well kind of quirks. What goes wrong with CP?

347
00:16:31.480 --> 00:16:34.440
<v Speaker 2>Well, the main thing is that SIP actually uses two protocols.

348
00:16:34.759 --> 00:16:37.200
<v Speaker 2>SIP itself is just for setting up the call, tearing

349
00:16:37.240 --> 00:16:38.840
<v Speaker 2>it down, managing the session.

350
00:16:38.879 --> 00:16:40.679
<v Speaker 1>Okay, the control signals.

351
00:16:40.240 --> 00:16:43.759
<v Speaker 2>Right, But the actual voice, your conversation that travels over

352
00:16:43.799 --> 00:16:46.840
<v Speaker 2>a different protocol called RTP Real Time Transport Protocol.

353
00:16:47.039 --> 00:16:49.919
<v Speaker 1>Two protocols for one call. Sounds like it could get confusing.

354
00:16:50.080 --> 00:16:55.639
<v Speaker 2>It can, especially for firewalls and neat routers network address translation.

355
00:16:55.759 --> 00:16:57.720
<v Speaker 2>You know the thing most home routers do. They get

356
00:16:57.720 --> 00:17:01.279
<v Speaker 2>really confused by CIP. Sometimes the sipart works the call connects,

357
00:17:01.559 --> 00:17:04.400
<v Speaker 2>but the RTP part the audio gets blocked, so you

358
00:17:04.440 --> 00:17:07.440
<v Speaker 2>get silence. The source calls that the audiopath will not

359
00:17:07.480 --> 00:17:08.720
<v Speaker 2>be carrying audio.

360
00:17:09.039 --> 00:17:13.359
<v Speaker 1>Dead air frustrating any other SIP issues.

361
00:17:13.559 --> 00:17:16.519
<v Speaker 2>Yeah, Sometimes GTMF tones the keypad beeps when you press

362
00:17:16.599 --> 00:17:20.119
<v Speaker 2>numbers can get messed up. The source says, certain codex

363
00:17:20.160 --> 00:17:23.319
<v Speaker 2>mangle the audio enough that the other end doesn't recognize

364
00:17:23.359 --> 00:17:26.480
<v Speaker 2>the tones correctly. I think trying to navigate an automated

365
00:17:26.519 --> 00:17:29.039
<v Speaker 2>menu and it just doesn't register your keypresses.

366
00:17:29.079 --> 00:17:31.920
<v Speaker 1>Okay, so SIP is standard but can be tricky with

367
00:17:32.000 --> 00:17:36.920
<v Speaker 1>networks and sometimes tones. What's the alternative? You mentioned IAX.

368
00:17:36.319 --> 00:17:40.839
<v Speaker 2>Two, right, IAX two stands for inter Asterisk Exchange Protocol

369
00:17:40.920 --> 00:17:43.839
<v Speaker 2>Version two. It was designed by DIGITM mainly for connecting

370
00:17:43.880 --> 00:17:45.200
<v Speaker 2>Asterisk servers.

371
00:17:44.880 --> 00:17:48.759
<v Speaker 1>Together interasterisk, so it's mostly for Asterisk to Asterisk calls.

372
00:17:48.880 --> 00:17:51.519
<v Speaker 2>That was the original idea, but its advantages make it

373
00:17:51.599 --> 00:17:55.319
<v Speaker 2>useful in other situations too, especially overcoming those network issues

374
00:17:55.359 --> 00:17:56.160
<v Speaker 2>as IP has.

375
00:17:56.319 --> 00:17:59.160
<v Speaker 1>What are the advantages? How does it fix the firewall problem?

376
00:17:59.279 --> 00:18:01.599
<v Speaker 2>The killer feature of IAX two is that it uses

377
00:18:01.599 --> 00:18:04.680
<v Speaker 2>a single port usually EDP port four five sixty nine

378
00:18:05.079 --> 00:18:07.920
<v Speaker 2>for everything. Both the call control signaling and the voice

379
00:18:07.960 --> 00:18:10.200
<v Speaker 2>data travel over that one port.

380
00:18:10.160 --> 00:18:13.400
<v Speaker 1>AH, so the firewall only needs to worry about one connection.

381
00:18:13.680 --> 00:18:17.480
<v Speaker 2>Exactly much simpler. It means IAX two easily works in

382
00:18:17.559 --> 00:18:21.559
<v Speaker 2>just about any environment without confusing firewalls or not enabled routers.

383
00:18:22.079 --> 00:18:25.319
<v Speaker 2>Big win for network traversal. Plus, it uses smaller binary

384
00:18:25.359 --> 00:18:30.720
<v Speaker 2>codes for signaling instead of sip's text based HGTP like commands.

385
00:18:30.279 --> 00:18:32.799
<v Speaker 1>So uses less bandwidth two a bit less yeah.

386
00:18:32.880 --> 00:18:36.000
<v Speaker 2>More efficient. So IX two is great for server links

387
00:18:36.039 --> 00:18:39.079
<v Speaker 2>or situations where you control both ends and want simpler

388
00:18:39.119 --> 00:18:42.960
<v Speaker 2>network setup. SIP is better for compatibility with the wider world.

389
00:18:43.160 --> 00:18:45.519
<v Speaker 1>Makes sense. Choose the right tool for the job. What

390
00:18:45.599 --> 00:18:49.680
<v Speaker 1>about connecting to actual old school phone lines, not VoIP

391
00:18:50.079 --> 00:18:50.839
<v Speaker 1>For that, you use.

392
00:18:50.759 --> 00:18:53.039
<v Speaker 2>Those interface cards we mentioned earlier, and they use a

393
00:18:53.079 --> 00:18:56.599
<v Speaker 2>PoTA connections. That's just the internal Asterisk name for handling

394
00:18:56.640 --> 00:18:57.680
<v Speaker 2>traditional phone hardware.

395
00:18:57.720 --> 00:19:00.279
<v Speaker 1>Okay, zapata. And there are two types of signals.

396
00:19:00.279 --> 00:19:03.519
<v Speaker 2>Right, FXO and FXS. You need an FXO port to

397
00:19:03.519 --> 00:19:05.839
<v Speaker 2>connect to the phone company's line coming into your building.

398
00:19:06.160 --> 00:19:08.839
<v Speaker 2>It expects to receive dial tone and signals from the network.

399
00:19:08.920 --> 00:19:11.000
<v Speaker 1>Okay. FXO receives from the telco.

400
00:19:11.000 --> 00:19:13.599
<v Speaker 2>And an FXS port is what you use to connect

401
00:19:13.640 --> 00:19:18.240
<v Speaker 2>a standard analog telephone to your Asterisk server. It provides

402
00:19:18.279 --> 00:19:20.400
<v Speaker 2>dial tone and signals to the phone, just like the

403
00:19:20.400 --> 00:19:21.160
<v Speaker 2>phone company would.

404
00:19:21.240 --> 00:19:24.880
<v Speaker 1>Got it. FXS sends to the phone. Okay, crucial feature

405
00:19:24.960 --> 00:19:28.200
<v Speaker 1>for any PBX voicemail. How does Asterisk candle that? Is

406
00:19:28.240 --> 00:19:29.319
<v Speaker 1>it some special hardware?

407
00:19:29.559 --> 00:19:33.480
<v Speaker 2>Nope, that's the beauty of it. Asterisk just stores voicemails

408
00:19:33.519 --> 00:19:37.119
<v Speaker 2>as regular audio files like WAV files or GSM files

409
00:19:37.160 --> 00:19:39.960
<v Speaker 2>on the servers hard drive exactly, or a flashcard whatever

410
00:19:40.000 --> 00:19:43.400
<v Speaker 2>storage you have. Compared to old pbx's with their expensive

411
00:19:43.440 --> 00:19:47.680
<v Speaker 2>proprietary voicemail cards that held like an hour of messages, Yeah,

412
00:19:47.759 --> 00:19:50.319
<v Speaker 2>Asterisk running on a PC affords you an amazing amount

413
00:19:50.319 --> 00:19:52.880
<v Speaker 2>of storage space. Just add another hard drive if you

414
00:19:52.920 --> 00:19:55.000
<v Speaker 2>need more. It's super flexible.

415
00:19:54.559 --> 00:19:57.880
<v Speaker 1>And using it leaving messages checking them pretty standard.

416
00:19:58.160 --> 00:20:00.640
<v Speaker 2>There are two main applications. Voice mail is used in

417
00:20:00.640 --> 00:20:03.079
<v Speaker 2>the dial plant to like callers leave a message, and

418
00:20:03.200 --> 00:20:05.920
<v Speaker 2>voicemail Maine is what you dial into to check your messages.

419
00:20:06.000 --> 00:20:09.559
<v Speaker 2>It does all the usual stuff prompts, passwords, saving, deleting,

420
00:20:09.920 --> 00:20:11.759
<v Speaker 2>plus cool things like sending you an email when you

421
00:20:11.759 --> 00:20:12.759
<v Speaker 2>get a voicemail, I'm.

422
00:20:12.680 --> 00:20:15.000
<v Speaker 1>Nice with the message attached yep, you can have.

423
00:20:14.920 --> 00:20:16.759
<v Speaker 2>It attached to the audio file right to the email,

424
00:20:16.960 --> 00:20:19.640
<v Speaker 2>or just send a notification. Really handy definitely.

425
00:20:20.200 --> 00:20:24.839
<v Speaker 1>What other sort of standard PBX features does Asterisk handle easily?

426
00:20:25.240 --> 00:20:28.319
<v Speaker 2>Well, there's music on hold obviously, you can even set

427
00:20:28.400 --> 00:20:31.799
<v Speaker 2>up different classes of music, so callers to sales might

428
00:20:31.839 --> 00:20:34.039
<v Speaker 2>hear one thing callers to support here.

429
00:20:33.960 --> 00:20:36.759
<v Speaker 1>Another customizable hold music okay.

430
00:20:36.559 --> 00:20:41.039
<v Speaker 2>And conference calls big one. For internal meetings, Asterisk uses

431
00:20:41.039 --> 00:20:44.359
<v Speaker 2>an application called meet me lets multiple people dial into

432
00:20:44.440 --> 00:20:45.599
<v Speaker 2>a virtual conference room.

433
00:20:45.759 --> 00:20:47.440
<v Speaker 1>Meet me. Does that need anything special?

434
00:20:47.640 --> 00:20:50.640
<v Speaker 2>It does? Yeah. It needs a reliable timing source to

435
00:20:50.720 --> 00:20:54.119
<v Speaker 2>keep all the audio streams synchronized Usually this comes from

436
00:20:54.119 --> 00:20:56.920
<v Speaker 2>one of those Digita hardware cards, or there's a software

437
00:20:57.000 --> 00:20:59.599
<v Speaker 2>workaround using a kernel module called ZiT dummy if you

438
00:20:59.599 --> 00:21:02.480
<v Speaker 2>don't have the hardware. But yeah, timing is key for

439
00:21:02.640 --> 00:21:03.519
<v Speaker 2>clear conferencing.

440
00:21:04.039 --> 00:21:06.720
<v Speaker 1>Okay, so this is all really powerful call handling. But

441
00:21:06.799 --> 00:21:10.119
<v Speaker 1>you mentioned ASTROSK can be extended customized. That sounds like

442
00:21:10.160 --> 00:21:12.839
<v Speaker 1>where the real power comes in, like that Samurai sword idea.

443
00:21:12.880 --> 00:21:13.599
<v Speaker 1>How does that work?

444
00:21:14.000 --> 00:21:16.319
<v Speaker 2>This is where it gets really interesting. The core mechanism

445
00:21:16.400 --> 00:21:20.440
<v Speaker 2>for this is called AGI, the Asterisk Gateway Interface.

446
00:21:20.720 --> 00:21:23.039
<v Speaker 1>AGI Gateway Interface sounds important.

447
00:21:23.319 --> 00:21:26.440
<v Speaker 2>It is. It's how Asterisk can talk to external programs

448
00:21:26.519 --> 00:21:29.480
<v Speaker 2>or scripts. Now, there's a simple way, using the system

449
00:21:29.599 --> 00:21:32.000
<v Speaker 2>command and the dial plan. You can tell ASTs, hey,

450
00:21:32.119 --> 00:21:32.880
<v Speaker 2>run this script.

451
00:21:32.960 --> 00:21:34.400
<v Speaker 1>Okay, seems easy enough.

452
00:21:34.480 --> 00:21:37.599
<v Speaker 2>It is. But the catch is once Asterisk runs that

453
00:21:37.720 --> 00:21:40.960
<v Speaker 2>script using system, it kind of lets go. The source says,

454
00:21:41.200 --> 00:21:43.960
<v Speaker 2>Asterisk can no longer interact with the script. It just runs,

455
00:21:44.000 --> 00:21:45.599
<v Speaker 2>does its thing, and Asterisk moves on.

456
00:21:45.960 --> 00:21:48.480
<v Speaker 1>So it's like a one way street. Asterisk tells the

457
00:21:48.519 --> 00:21:50.440
<v Speaker 1>script to run, but can't get anything back from it

458
00:21:50.519 --> 00:21:51.799
<v Speaker 1>during the call exactly.

459
00:21:52.000 --> 00:21:54.880
<v Speaker 2>That's where AGI is different. AGI maintains a two way

460
00:21:54.880 --> 00:21:58.200
<v Speaker 2>conversation between Asterisk and the external script while the call

461
00:21:58.279 --> 00:21:58.680
<v Speaker 2>is active.

462
00:21:58.880 --> 00:22:01.480
<v Speaker 1>Ah okay, that's the key. How does it manage that

463
00:22:01.519 --> 00:22:02.519
<v Speaker 1>two way communication?

464
00:22:02.920 --> 00:22:07.079
<v Speaker 2>It's actually the source calls. It a powerful yet simple system.

465
00:22:07.559 --> 00:22:13.000
<v Speaker 2>It uses standard Unix file handles, std, std out, and cysdr.

466
00:22:12.680 --> 00:22:15.720
<v Speaker 1>Started input stand output stand air like basic command line stuff.

467
00:22:15.839 --> 00:22:19.960
<v Speaker 2>Pretty much. Asterisk sends commands and information to the script

468
00:22:20.079 --> 00:22:23.680
<v Speaker 2>via the script's stdi in, and the script sends commands

469
00:22:23.759 --> 00:22:27.759
<v Speaker 2>and results back to Asterisk via its stdout. It's a

470
00:22:27.839 --> 00:22:29.359
<v Speaker 2>universal way for programs to talk.

471
00:22:29.519 --> 00:22:33.000
<v Speaker 1>So because it uses these standard channels, it.

472
00:22:32.960 --> 00:22:35.480
<v Speaker 2>Means almost any programming language can be used to write

473
00:22:35.480 --> 00:22:40.440
<v Speaker 2>an AGI script. Perl, Php, Python, c Java, shell scripts,

474
00:22:40.880 --> 00:22:43.799
<v Speaker 2>whatever can read from standard input and write to standard

475
00:22:43.839 --> 00:22:46.240
<v Speaker 2>output can interact with Asterisk during a call.

476
00:22:46.400 --> 00:22:49.000
<v Speaker 1>Wow, okay, that blows things wide open. Your phone system

477
00:22:49.000 --> 00:22:52.480
<v Speaker 1>isn't just handling calls anymore. It's suddenly this interactive platform

478
00:22:52.519 --> 00:22:54.519
<v Speaker 1>that can run code in response to calls.

479
00:22:54.599 --> 00:22:57.680
<v Speaker 2>Exactly. It turns your phone system into like an application

480
00:22:57.759 --> 00:22:59.079
<v Speaker 2>seer that happens to talk to people.

481
00:22:59.160 --> 00:23:00.920
<v Speaker 1>Give us an example, soll what that's a cool, maybe

482
00:23:01.039 --> 00:23:02.839
<v Speaker 1>unexpected thing you can do with Agi?

483
00:23:03.000 --> 00:23:05.640
<v Speaker 2>Okay, here's a fun one from the source. Imagine you

484
00:23:05.640 --> 00:23:07.960
<v Speaker 2>have one of those scrolling LED signs, like a Beta

485
00:23:07.960 --> 00:23:10.920
<v Speaker 2>Brite sign. Yeah, you could write a pearl AGI script.

486
00:23:11.319 --> 00:23:14.759
<v Speaker 2>The source gives one called wlsid dot pl that connects

487
00:23:14.759 --> 00:23:17.480
<v Speaker 2>to that sign through the server serial port. When a

488
00:23:17.480 --> 00:23:20.880
<v Speaker 2>call comes into Asterisk, don't tell me, the AGI script

489
00:23:21.039 --> 00:23:24.559
<v Speaker 2>grabs the caller ID information and sends commands to the

490
00:23:24.680 --> 00:23:28.200
<v Speaker 2>LED sign to display the caller's name and numbers scrolling

491
00:23:28.240 --> 00:23:29.599
<v Speaker 2>across it lass.

492
00:23:29.880 --> 00:23:32.759
<v Speaker 1>That's brilliant. A physical caller ID display on a big

493
00:23:32.799 --> 00:23:33.839
<v Speaker 1>sign right.

494
00:23:34.079 --> 00:23:36.279
<v Speaker 2>Just needs the Asterisk user to have permission to write

495
00:23:36.279 --> 00:23:39.359
<v Speaker 2>to the serial port. But it's a perfect example of

496
00:23:39.400 --> 00:23:42.759
<v Speaker 2>bridging the phone system to the physical world via a script.

497
00:23:43.680 --> 00:23:46.039
<v Speaker 2>AGI scripts can also do things within the call, like

498
00:23:46.079 --> 00:23:48.920
<v Speaker 2>say number to read digits back, say phonetic to spell

499
00:23:48.960 --> 00:23:52.119
<v Speaker 2>things out, say time, even set calor rid to change

500
00:23:52.119 --> 00:23:55.000
<v Speaker 2>the outgoing caller ID, or set contexts to move the

501
00:23:55.000 --> 00:23:57.640
<v Speaker 2>call to a different part of the dial plant. Loads

502
00:23:57.680 --> 00:23:58.160
<v Speaker 2>of control.

503
00:23:58.400 --> 00:24:01.519
<v Speaker 1>That level of interaction is in credible. Is it hard

504
00:24:01.559 --> 00:24:04.000
<v Speaker 1>to write these AGI scripts? Dealing with all of back

505
00:24:04.039 --> 00:24:04.960
<v Speaker 1>and forth communication?

506
00:24:05.039 --> 00:24:06.920
<v Speaker 2>We can be a bit fiddly, Yeah, handling all the

507
00:24:06.920 --> 00:24:10.119
<v Speaker 2>commands and responses. But there are libraries to help, like

508
00:24:10.279 --> 00:24:14.839
<v Speaker 2>Asterisk that AGI for Perol or PHPGI for PHP. These

509
00:24:14.880 --> 00:24:17.240
<v Speaker 2>libraries handle a lot of the repetitive stuff, the boiler

510
00:24:17.240 --> 00:24:18.680
<v Speaker 2>replate communication.

511
00:24:18.200 --> 00:24:21.319
<v Speaker 1>Code, so the developer can just focus on the application launchic.

512
00:24:21.160 --> 00:24:24.279
<v Speaker 2>Exactly once you focus more on developing the application itself.

513
00:24:24.400 --> 00:24:27.160
<v Speaker 2>There are even more advanced versions too, like fast IGI

514
00:24:27.480 --> 00:24:30.079
<v Speaker 2>FASTGI Yeah, that lets you run your AGI scripts on

515
00:24:30.119 --> 00:24:33.559
<v Speaker 2>a completely separate server. They communicate with Asterisk over the network.

516
00:24:33.680 --> 00:24:35.920
<v Speaker 2>Good for load balancing or if your scripts need special

517
00:24:35.920 --> 00:24:38.599
<v Speaker 2>resources and there's dead AGI.

518
00:24:38.799 --> 00:24:42.200
<v Speaker 1>Dead Agi sounds ominous tuckles net.

519
00:24:42.480 --> 00:24:45.079
<v Speaker 2>It just means the AGI script can keep running even

520
00:24:45.119 --> 00:24:48.720
<v Speaker 2>after the caller hangs up. Useful for cleanup tasks, logging

521
00:24:48.759 --> 00:24:52.319
<v Speaker 2>stuff like that. And EAGI provides direct access to the

522
00:24:52.319 --> 00:24:53.960
<v Speaker 2>call's audio stream for processing.

523
00:24:54.480 --> 00:24:57.240
<v Speaker 1>Okay, the power and flexibility here are just immense, but

524
00:24:57.759 --> 00:25:01.480
<v Speaker 1>that usually comes with the flip side right security, Let's

525
00:25:01.480 --> 00:25:04.240
<v Speaker 1>pivot to that, the double edged sword. Maybe first, the

526
00:25:04.279 --> 00:25:07.799
<v Speaker 1>protocols themselves. How does VoIP handle voice data and what

527
00:25:07.839 --> 00:25:08.839
<v Speaker 1>are the vulnerabilities?

528
00:25:08.920 --> 00:25:11.519
<v Speaker 2>Right? So, your actual voice when it's turned into data,

529
00:25:11.599 --> 00:25:14.680
<v Speaker 2>it mainly travels using RTP, the real time protocol. We

530
00:25:14.759 --> 00:25:16.160
<v Speaker 2>mentioned that briefly with SIP.

531
00:25:16.400 --> 00:25:18.640
<v Speaker 1>Yeah, the second protocol SIP uses.

532
00:25:18.359 --> 00:25:22.200
<v Speaker 2>Exactly, and RTP typically runs over UDP, the User Datagram protocol. Now,

533
00:25:22.319 --> 00:25:25.400
<v Speaker 2>UDP is different from TCP, which most web traffic uses.

534
00:25:25.680 --> 00:25:29.200
<v Speaker 2>UDP is stateless stateless meaning meaning it just sends packets

535
00:25:29.200 --> 00:25:31.559
<v Speaker 2>out without checking if they arrived or in what order,

536
00:25:32.000 --> 00:25:34.400
<v Speaker 2>like sending postcards instead of a registered letter.

537
00:25:34.559 --> 00:25:37.880
<v Speaker 1>That sounds unreliable for voice. Wouldn't you lose words?

538
00:25:38.279 --> 00:25:40.839
<v Speaker 2>You'd think so, but it's actually considered a feature for

539
00:25:40.920 --> 00:25:45.039
<v Speaker 2>real time voice. TCP guarantees delivery right here, resends lost packets.

540
00:25:45.519 --> 00:25:48.599
<v Speaker 2>Imagine doing that in a conversation. You get these long pauses,

541
00:25:49.160 --> 00:25:52.039
<v Speaker 2>then a burst of delayed audio totally unusable.

542
00:25:52.119 --> 00:25:56.079
<v Speaker 1>Ah. Okay, So UDP's unreliability is better for voice because

543
00:25:56.119 --> 00:25:59.920
<v Speaker 1>it prioritizes speed over perfect delivery. A tiny blip is

544
00:26:00.039 --> 00:26:01.279
<v Speaker 1>better than a long freeze.

545
00:26:01.319 --> 00:26:05.119
<v Speaker 2>Precisely, the source notes that with TCP, minor network issues

546
00:26:05.119 --> 00:26:09.039
<v Speaker 2>could render a VoIP conversation useless due to retransmissions. UDP

547
00:26:09.279 --> 00:26:12.039
<v Speaker 2>just plows ahead, making it feel more immediate, even if

548
00:26:12.039 --> 00:26:13.720
<v Speaker 2>a tiny packet gets lost here and there.

549
00:26:13.799 --> 00:26:16.480
<v Speaker 1>Okay, So RTP over UDP for the voice itself, we

550
00:26:16.519 --> 00:26:20.160
<v Speaker 1>talked about SAP versus IX two for signaling. Any security

551
00:26:20.160 --> 00:26:21.200
<v Speaker 1>differences there.

552
00:26:21.079 --> 00:26:24.839
<v Speaker 2>Well, SIPs text based AHCTP like commands make it easier

553
00:26:24.839 --> 00:26:27.119
<v Speaker 2>to debug if something's wrong, you can just read the traffic,

554
00:26:27.480 --> 00:26:30.440
<v Speaker 2>but they do use a bit more bandwidth. IX two's

555
00:26:30.480 --> 00:26:33.920
<v Speaker 2>binary approach is more compact, efficient, and as we said,

556
00:26:33.960 --> 00:26:38.319
<v Speaker 2>simpler for firewalls. From a pure security protocol view, both

557
00:26:38.359 --> 00:26:42.119
<v Speaker 2>can be encrypted, but their structures differ. Now let's talk

558
00:26:42.160 --> 00:26:43.839
<v Speaker 2>actual threats. What can go.

559
00:26:43.880 --> 00:26:46.599
<v Speaker 1>Wrong right when voice is just data? What kind of

560
00:26:46.640 --> 00:26:47.799
<v Speaker 1>attacks do you worry about?

561
00:26:47.920 --> 00:26:51.000
<v Speaker 2>Well, the classics still apply denial of service DOS or

562
00:26:51.079 --> 00:26:52.240
<v Speaker 2>distributed doss.

563
00:26:52.000 --> 00:26:54.720
<v Speaker 1>D dogs flooding the network to take things offline.

564
00:26:54.359 --> 00:26:57.759
<v Speaker 2>Yep, just overwhelming the asterisk server or the network connection

565
00:26:57.839 --> 00:27:00.400
<v Speaker 2>with junk traffic so legitimate calls can't get it through.

566
00:27:00.880 --> 00:27:03.759
<v Speaker 2>VOYIP is just as susceptible as any web server or

567
00:27:03.799 --> 00:27:06.759
<v Speaker 2>email server, and because it's real time, it's often more

568
00:27:06.799 --> 00:27:09.960
<v Speaker 2>sensitive to these floods. And importantly, the source points out

569
00:27:10.119 --> 00:27:13.319
<v Speaker 2>neither integrity checks nor encryption can prevent these attacks. They're

570
00:27:13.400 --> 00:27:14.519
<v Speaker 2>just about raw volume.

571
00:27:15.079 --> 00:27:18.359
<v Speaker 1>So defense against DOS is more about network capacity and filtering,

572
00:27:18.440 --> 00:27:21.480
<v Speaker 1>not the voyet protocol itself. What about attacks that try

573
00:27:21.519 --> 00:27:23.680
<v Speaker 1>to like redirect calls that.

574
00:27:23.599 --> 00:27:28.240
<v Speaker 2>Could be DNS poisoning or spoofing. If your VoIP system

575
00:27:28.319 --> 00:27:32.799
<v Speaker 2>uses domain names like zip dotmcompany, dot com to find servers,

576
00:27:33.240 --> 00:27:36.079
<v Speaker 2>an attacker could poison the DNS records.

577
00:27:35.880 --> 00:27:39.519
<v Speaker 1>So when your phone tries to reach SIP dotmcompany, dot com,

578
00:27:39.599 --> 00:27:41.799
<v Speaker 1>it gets sent to the attackers server instead.

579
00:27:42.000 --> 00:27:45.640
<v Speaker 2>Exactly, they could intercept calls, record them, maybe try to

580
00:27:45.640 --> 00:27:46.519
<v Speaker 2>steal credentials.

581
00:27:46.680 --> 00:27:50.319
<v Speaker 1>Nasty. And what about attacks inside the local network man

582
00:27:50.359 --> 00:27:50.799
<v Speaker 1>in the middle.

583
00:27:50.960 --> 00:27:54.160
<v Speaker 2>Yeah, MITM attacks are a big risk, especially on switch networks,

584
00:27:54.319 --> 00:27:55.960
<v Speaker 2>usually done via ARP spoofing.

585
00:27:56.440 --> 00:28:01.960
<v Speaker 1>ARP spoofing refreshing my memory. That's tricking devices about MC addresses, right.

586
00:28:02.000 --> 00:28:05.880
<v Speaker 2>An attacker sends out fake ARP messages basically telling your phone, hey,

587
00:28:05.960 --> 00:28:09.200
<v Speaker 2>the server's MC address is my MC address, and telling

588
00:28:09.240 --> 00:28:12.240
<v Speaker 2>the server, hey, the phone's MC address is my MAC address.

589
00:28:12.359 --> 00:28:14.519
<v Speaker 1>So all the traffic between the phone and the server

590
00:28:14.640 --> 00:28:16.599
<v Speaker 1>flows through the attacker's machine precisely.

591
00:28:16.880 --> 00:28:19.920
<v Speaker 2>Tools like ettercap make this disturbingly easy. They can scan

592
00:28:20.039 --> 00:28:22.920
<v Speaker 2>the network, find phones and servers, and perform the AARP

593
00:28:23.079 --> 00:28:26.759
<v Speaker 2>poisoning automatically, even if your own computer isn't directly involved

594
00:28:26.759 --> 00:28:29.240
<v Speaker 2>in the call. An attacker on the same network segment

595
00:28:29.359 --> 00:28:31.200
<v Speaker 2>could potentially intercept it, and.

596
00:28:31.079 --> 00:28:33.279
<v Speaker 1>Those villains we talked about help mitigate this.

597
00:28:33.400 --> 00:28:35.440
<v Speaker 2>They help a lot. Yeah, if the phones are on

598
00:28:35.480 --> 00:28:38.279
<v Speaker 2>a separate VLAN from most user machines, it makes it

599
00:28:38.400 --> 00:28:40.599
<v Speaker 2>much harder for a casual attacker to even see the

600
00:28:40.680 --> 00:28:43.440
<v Speaker 2>VOP traffic to begin with, let alone spoof.

601
00:28:43.359 --> 00:28:47.480
<v Speaker 1>ARP for it. Okay, are there other VoIP specific attacks mentioned.

602
00:28:47.240 --> 00:28:50.839
<v Speaker 2>Yeah, a few others. Rogue VoIP endpoint. Basically, an attacker

603
00:28:50.880 --> 00:28:54.119
<v Speaker 2>finds an unused network jack, plugs in their own VoIP

604
00:28:54.279 --> 00:28:57.440
<v Speaker 2>device and tries to register it on your system, maybe

605
00:28:57.559 --> 00:28:58.519
<v Speaker 2>using stolen.

606
00:28:58.200 --> 00:29:00.200
<v Speaker 1>Credentials sneaking onto the network.

607
00:29:00.359 --> 00:29:04.440
<v Speaker 2>Right. Then there's registration hijacking. An attacker pretends to be

608
00:29:04.480 --> 00:29:06.759
<v Speaker 2>your phone and tells the server, Hey, I'm extension one

609
00:29:06.799 --> 00:29:10.640
<v Speaker 2>on one now rerouting your calls to them. Proxy impersonation

610
00:29:10.680 --> 00:29:13.160
<v Speaker 2>tricks your phone into talking to a fake server, and

611
00:29:13.200 --> 00:29:15.559
<v Speaker 2>the big one financially toll fraud.

612
00:29:15.720 --> 00:29:18.759
<v Speaker 1>Toll fraud making expensive calls on someone else's.

613
00:29:18.440 --> 00:29:22.400
<v Speaker 2>Dime exactly, hacking into the asterisk server itself, maybe through

614
00:29:22.440 --> 00:29:25.359
<v Speaker 2>a week password or vulnerability, and then using it to

615
00:29:25.400 --> 00:29:28.160
<v Speaker 2>make thousands of dollars worth of calls to international numbers

616
00:29:28.359 --> 00:29:32.079
<v Speaker 2>or premium rate lines that can bankrupt a small company fast.

617
00:29:32.400 --> 00:29:36.279
<v Speaker 1>Okay, lots of potential vulnerabilities. Now let's slip that Samurai

618
00:29:36.319 --> 00:29:40.359
<v Speaker 1>sword again. How can Asterisk itself be used for security

619
00:29:40.559 --> 00:29:44.720
<v Speaker 1>or maybe an auditing leveraging some of these network behaviors right.

620
00:29:44.759 --> 00:29:49.559
<v Speaker 2>Using the tool offensively or at least proactively. One example

621
00:29:49.559 --> 00:29:53.720
<v Speaker 2>given is combining Asterisk with motion detection software.

622
00:29:53.880 --> 00:29:56.000
<v Speaker 1>Motion detection like security cameras.

623
00:29:56.079 --> 00:29:59.240
<v Speaker 2>Yeah, there's open source software called Motion that watches video

624
00:29:59.279 --> 00:30:02.440
<v Speaker 2>feeds from movement. You could configure Motion so that if

625
00:30:02.440 --> 00:30:05.079
<v Speaker 2>it detects movement inside your house when you're away.

626
00:30:05.119 --> 00:30:07.240
<v Speaker 1>It triggers an Asteris action exactly.

627
00:30:07.279 --> 00:30:09.519
<v Speaker 2>It could run a script that tells Asterisk to call

628
00:30:09.559 --> 00:30:12.000
<v Speaker 2>your cell phone, maybe even use AGI to play a

629
00:30:12.039 --> 00:30:13.200
<v Speaker 2>specific warning message.

630
00:30:13.200 --> 00:30:15.559
<v Speaker 1>Intruder alert playing on yourself.

631
00:30:15.200 --> 00:30:17.160
<v Speaker 2>Could be and you could even try to spoof the

632
00:30:17.200 --> 00:30:20.559
<v Speaker 2>caller ID to something like security camera nine nine zero

633
00:30:20.680 --> 00:30:23.279
<v Speaker 2>zero zero zero one, though the source notes the name

634
00:30:23.359 --> 00:30:26.759
<v Speaker 2>part security camera often gets dropped by the public phone network.

635
00:30:26.759 --> 00:30:29.799
<v Speaker 2>They just look up the number. Still a cool integration.

636
00:30:29.519 --> 00:30:32.119
<v Speaker 1>That is clever. Okay, what about something that sounds totally

637
00:30:32.160 --> 00:30:35.000
<v Speaker 1>retro modems? Why on earth would you use a modem

638
00:30:35.039 --> 00:30:35.720
<v Speaker 1>with foe IP.

639
00:30:36.119 --> 00:30:38.640
<v Speaker 2>It sounds weird, right, but modems are still out there,

640
00:30:38.799 --> 00:30:43.519
<v Speaker 2>coinasale terminals tvo boxes needing to call home some credit

641
00:30:43.519 --> 00:30:46.960
<v Speaker 2>card equipment. They still use dial up and for security auditors.

642
00:30:47.160 --> 00:30:48.920
<v Speaker 2>Modems are key for war dialing.

643
00:30:49.279 --> 00:30:52.039
<v Speaker 1>Ah. War dialing. Now, that sounds familiar straight out of

644
00:30:52.079 --> 00:30:53.519
<v Speaker 1>the movie Wargames, isn't it.

645
00:30:53.599 --> 00:30:55.799
<v Speaker 2>The name got popularized by the movie in nineteen eighty four,

646
00:30:56.039 --> 00:31:00.000
<v Speaker 2>But the actual practice, sometimes called demon dialing, is older.

647
00:31:00.160 --> 00:31:02.559
<v Speaker 2>Is just systematically dialing phone numbers and arrange to see

648
00:31:02.559 --> 00:31:06.200
<v Speaker 2>what answers, looking for modems, fax machines, maybe even other

649
00:31:06.200 --> 00:31:07.799
<v Speaker 2>PBXs or voicemail.

650
00:31:07.359 --> 00:31:10.640
<v Speaker 1>Systems, okay, scanning for open doors on the phone network.

651
00:31:10.880 --> 00:31:13.599
<v Speaker 1>Why is doing this via VIP better than just using

652
00:31:13.599 --> 00:31:15.359
<v Speaker 1>a regular phone line and a modem?

653
00:31:15.400 --> 00:31:19.759
<v Speaker 2>Ah Several reasons. Big one annemity or at least obfuscation.

654
00:31:20.160 --> 00:31:22.680
<v Speaker 2>With VoIP, you can often mask where I'm coming.

655
00:31:22.440 --> 00:31:24.680
<v Speaker 1>From, spoofing the caller ID exactly.

656
00:31:24.759 --> 00:31:27.279
<v Speaker 2>The source gives an example where prefixing a dial number

657
00:31:27.319 --> 00:31:30.559
<v Speaker 2>with five tells their VoIP provider okay, spoof the caller

658
00:31:30.599 --> 00:31:34.000
<v Speaker 2>ID to whatever I specify. This also messes up the

659
00:31:34.039 --> 00:31:37.960
<v Speaker 2>A and I information that's automatic number identification the billing

660
00:31:38.039 --> 00:31:39.640
<v Speaker 2>number basically, so it's harder.

661
00:31:39.480 --> 00:31:41.319
<v Speaker 1>To trace back glover any other tricks.

662
00:31:41.640 --> 00:31:44.799
<v Speaker 2>Yeah, here's a neat one. Spoof your telephone number as

663
00:31:44.839 --> 00:31:46.519
<v Speaker 2>the number from an own fax machine.

664
00:31:46.839 --> 00:31:47.920
<v Speaker 1>Why would you do that.

665
00:31:47.880 --> 00:31:51.559
<v Speaker 2>To deter callbacks? If someone sees the mysted call and

666
00:31:51.599 --> 00:31:54.839
<v Speaker 2>tries to call back, they just get a fax screeching tone.

667
00:31:55.440 --> 00:31:57.880
<v Speaker 2>Less likely to investigate further loops.

668
00:31:59.319 --> 00:32:03.440
<v Speaker 1>That's devs Okay, what was that other term? Backspoofing?

669
00:32:03.720 --> 00:32:07.160
<v Speaker 2>Right, backspoofing, This is slightly different. You spoof a phone

670
00:32:07.240 --> 00:32:09.920
<v Speaker 2>number to yourself, so you make a call from number

671
00:32:10.039 --> 00:32:12.400
<v Speaker 2>X to number X. When the call hits, the phone

672
00:32:12.400 --> 00:32:16.680
<v Speaker 2>company systems their caller ID named database CNAM looks up

673
00:32:16.799 --> 00:32:20.160
<v Speaker 2>number X and displays the registered owner's name beck.

674
00:32:20.079 --> 00:32:21.759
<v Speaker 1>You the caller, so you can use it to figure

675
00:32:21.759 --> 00:32:23.759
<v Speaker 1>out who owns a particular number potentially.

676
00:32:23.839 --> 00:32:27.079
<v Speaker 2>Yeah, right, uses the phone company's own database against itself

677
00:32:27.319 --> 00:32:29.640
<v Speaker 2>in a way. And of course, Asterisk makes recording all

678
00:32:29.720 --> 00:32:32.480
<v Speaker 2>these calls easy using the monitor command of the dial plan.

679
00:32:32.839 --> 00:32:34.680
<v Speaker 2>But a big caveat here.

680
00:32:34.799 --> 00:32:36.359
<v Speaker 1>Let me guess legalities.

681
00:32:36.400 --> 00:32:39.839
<v Speaker 2>Absolutely the source stresses. Check your local laws regarding recording

682
00:32:39.839 --> 00:32:43.359
<v Speaker 2>telephone calls. Consent requirements very hugely right, So is.

683
00:32:43.359 --> 00:32:46.519
<v Speaker 1>There special software for doing this kind of OIP war dialing.

684
00:32:46.839 --> 00:32:50.400
<v Speaker 2>There is an open source tool called i WAR Intelligent

685
00:32:50.400 --> 00:32:51.440
<v Speaker 2>War Dealer i WAR.

686
00:32:51.839 --> 00:32:53.559
<v Speaker 1>What makes it special It's.

687
00:32:53.400 --> 00:32:56.160
<v Speaker 2>Designed for war dialing, so it supports things like random

688
00:32:56.240 --> 00:33:00.640
<v Speaker 2>or sequential dialing, trying to detect modem tones, automatically blacklists

689
00:33:00.680 --> 00:33:02.920
<v Speaker 2>of numbers not to call. But the key thing is

690
00:33:03.240 --> 00:33:06.720
<v Speaker 2>it has native iax TOOIP support.

691
00:33:06.519 --> 00:33:09.680
<v Speaker 1>Ah, so it can talk directly using that asterisk friendly

692
00:33:09.720 --> 00:33:10.759
<v Speaker 1>protocol exactly.

693
00:33:10.799 --> 00:33:14.200
<v Speaker 2>It acts as a full featured VoIP client designed specifically

694
00:33:14.200 --> 00:33:16.880
<v Speaker 2>for dialing lots of numbers. The source shows an example

695
00:33:16.920 --> 00:33:19.160
<v Speaker 2>command like i war pre dial five MP nine to

696
00:33:19.279 --> 00:33:23.359
<v Speaker 2>four SAMUS five five five fifty range one than eleven hundred.

697
00:33:23.039 --> 00:33:25.079
<v Speaker 1>So that would dial nine oh four five five five

698
00:33:25.119 --> 00:33:27.359
<v Speaker 1>five thousand, one thousand and one, one thousand and two

699
00:33:27.720 --> 00:33:30.519
<v Speaker 1>up to eleven hundred using that five poot prefix for.

700
00:33:30.480 --> 00:33:32.519
<v Speaker 2>Spoofing precisely very targeted scanning.

701
00:33:32.519 --> 00:33:36.160
<v Speaker 1>Okay, this is clearly powerful stuff, bordering on well packing

702
00:33:36.160 --> 00:33:38.839
<v Speaker 1>tools depending on intent. What are the absolute must know

703
00:33:39.000 --> 00:33:40.960
<v Speaker 1>legal points and security tips here?

704
00:33:41.119 --> 00:33:44.440
<v Speaker 2>Number one repeated multiple times. Always always check your local

705
00:33:44.440 --> 00:33:46.400
<v Speaker 2>and state laws before doing any kind of war dialing

706
00:33:46.480 --> 00:33:49.480
<v Speaker 2>or security scanning, and critically get prior permission from the

707
00:33:49.519 --> 00:33:52.480
<v Speaker 2>target on authorized scanning is illegal in most places. Don't

708
00:33:52.480 --> 00:33:54.119
<v Speaker 2>do without explicit written permission.

709
00:33:54.240 --> 00:33:57.559
<v Speaker 1>Permission is key, got it? And for securing your own

710
00:33:57.599 --> 00:33:59.960
<v Speaker 1>Asterisk system against these kinds of things.

711
00:34:00.119 --> 00:34:03.160
<v Speaker 2>Remember those config files, passwords in them are usually plain

712
00:34:03.200 --> 00:34:07.480
<v Speaker 2>text oh right, not encrypted nope, So file permissions are critical.

713
00:34:07.640 --> 00:34:09.800
<v Speaker 2>Make sure those config files are readable only by the

714
00:34:09.880 --> 00:34:13.360
<v Speaker 2>user that Asterrisk is running under, usually a dedicated as

715
00:34:13.519 --> 00:34:15.320
<v Speaker 2>Risk user. Don't let just anyone read them.

716
00:34:15.480 --> 00:34:17.039
<v Speaker 1>Limit access. What else?

717
00:34:17.159 --> 00:34:19.360
<v Speaker 2>If you have remote phones connecting you over the internet,

718
00:34:19.360 --> 00:34:23.840
<v Speaker 2>home users, branch offices, use encryption SRTP for the voice stream.

719
00:34:24.280 --> 00:34:27.119
<v Speaker 2>Maybe wrap everything in an IP six tunnel or use

720
00:34:27.159 --> 00:34:29.280
<v Speaker 2>OpenVPN encrypt.

721
00:34:28.920 --> 00:34:31.199
<v Speaker 1>That traffic, protect data and transit.

722
00:34:30.880 --> 00:34:34.280
<v Speaker 2>Absolutely and back to the network level vlands, set them

723
00:34:34.320 --> 00:34:37.559
<v Speaker 2>up properly, isolate your voice network. That's your best defense

724
00:34:37.599 --> 00:34:40.960
<v Speaker 2>against eavesdropping and ARP spoofing on your local network.

725
00:34:41.039 --> 00:34:43.920
<v Speaker 1>Wow. Okay, what an incredible journey through Asterisk. We've really

726
00:34:44.000 --> 00:34:48.119
<v Speaker 1>gone from its sort of humble open source roots with

727
00:34:48.159 --> 00:34:49.320
<v Speaker 1>Mark Spencer right.

728
00:34:49.159 --> 00:34:51.000
<v Speaker 2>Just needing a cheaper PVX.

729
00:34:50.760 --> 00:34:54.559
<v Speaker 1>All the way to this incredibly powerful flexible tool that

730
00:34:54.719 --> 00:34:58.679
<v Speaker 1>Samurai sord analogy feels pretty accurate now. It can build

731
00:34:58.719 --> 00:35:01.920
<v Speaker 1>amazing communications systems, but you also need to understand its

732
00:35:01.960 --> 00:35:04.679
<v Speaker 1>power and potential dangers.

733
00:35:04.880 --> 00:35:08.440
<v Speaker 2>It definitely requires careful handling knowledge. We've seen how you

734
00:35:08.519 --> 00:35:11.800
<v Speaker 2>build it, configure it with those contexts and extensions, extend

735
00:35:11.840 --> 00:35:15.840
<v Speaker 2>it with AGI connected with sep or iax.

736
00:35:15.320 --> 00:35:17.920
<v Speaker 1>Two, and how to think about securing it from file

737
00:35:17.960 --> 00:35:23.800
<v Speaker 1>permissions to vilans to encryption. It really empowers people and

738
00:35:23.840 --> 00:35:27.119
<v Speaker 1>companies to control their own comms infrastructure in a way

739
00:35:27.159 --> 00:35:31.239
<v Speaker 1>that just wasn't possible before. Unprecedented control really, So looking forward,

740
00:35:31.800 --> 00:35:34.960
<v Speaker 1>as technology keeps racing ahead, you know, AI, Internet of Things,

741
00:35:34.960 --> 00:35:38.400
<v Speaker 1>everything's getting connected, our reliance on these communication systems is

742
00:35:38.440 --> 00:35:39.119
<v Speaker 1>only going to grow.

743
00:35:39.079 --> 00:35:41.559
<v Speaker 2>Right, Absolutely, they're becoming even more critical infrastructure.

744
00:35:41.639 --> 00:35:45.239
<v Speaker 1>So what new vulnerabilities might pop up as voyip gets

745
00:35:45.239 --> 00:35:49.400
<v Speaker 1>tangled up with AI, with IoT devices, and maybe more optimistically,

746
00:35:49.639 --> 00:35:52.159
<v Speaker 1>how will open source tools like asterisk keep evolving to

747
00:35:52.239 --> 00:35:55.039
<v Speaker 1>let people innovate but also defend themselves in that that

748
00:35:55.119 --> 00:35:57.039
<v Speaker 1>increasingly complex landscape.

749
00:35:57.079 --> 00:36:00.559
<v Speaker 2>That's the big question, isn't it. Constant evolution and constant

750
00:36:00.639 --> 00:36:01.679
<v Speaker 2>adaptation needed.

751
00:36:02.000 --> 00:36:04.679
<v Speaker 1>Definitely something to chew on as you navigate your own

752
00:36:04.719 --> 00:36:05.519
<v Speaker 1>digital world,
